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 b88c5d4..44b6663 100644
--- a/src/pkg/net/fd_windows.go
+++ b/src/pkg/net/fd_windows.go
@@ -300,7 +300,6 @@
net: net,
closec: make(chan bool),
}
- runtime.SetFinalizer(netfd, (*netFD).Close)
return netfd
}
@@ -319,6 +318,7 @@
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 @@
return fd.shutdown(syscall.SHUT_WR)
}
+func (fd *netFD) closesocket() error {
+ return closesocket(fd.sysfd)
+}
+
// Read from network.
type readOp struct {