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 {