From: Alex Brainman Date: Wed, 5 Dec 2012 04:26:18 +0000 (+1100) Subject: net: change windows netFD finalizer to behave similar to unix X-Git-Tag: go1.1rc2~1716 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4855c1c14589de01140087f93ecbd9153c9b1a8b;p=gostls13.git net: change windows netFD finalizer to behave similar to unix R=dave, mikioh.mikioh CC=golang-dev https://golang.org/cl/6873046 --- diff --git a/src/pkg/net/fd_windows.go b/src/pkg/net/fd_windows.go index b88c5d474b..44b6663af9 100644 --- a/src/pkg/net/fd_windows.go +++ b/src/pkg/net/fd_windows.go @@ -300,7 +300,6 @@ func allocFD(fd syscall.Handle, family, sotype int, net string) *netFD { net: net, closec: make(chan bool), } - runtime.SetFinalizer(netfd, (*netFD).Close) return netfd } @@ -319,6 +318,7 @@ func newFD(fd syscall.Handle, family, proto int, net string) (*netFD, error) { func (fd *netFD) setAddr(laddr, raddr Addr) { fd.laddr = laddr fd.raddr = raddr + runtime.SetFinalizer(fd, (*netFD).closesocket) } func (fd *netFD) connect(ra syscall.Sockaddr) error { @@ -398,6 +398,10 @@ func (fd *netFD) CloseWrite() error { return fd.shutdown(syscall.SHUT_WR) } +func (fd *netFD) closesocket() error { + return closesocket(fd.sysfd) +} + // Read from network. type readOp struct {