]> Cypherpunks repositories - gostls13.git/commitdiff
net: fix close of Listener
authorMichael Hoisie <hoisie@gmail.com>
Tue, 4 Jan 2011 16:55:13 +0000 (11:55 -0500)
committerRuss Cox <rsc@golang.org>
Tue, 4 Jan 2011 16:55:13 +0000 (11:55 -0500)
Fixes #1375.

R=rsc, r
CC=golang-dev
https://golang.org/cl/3731048

src/pkg/net/fd.go

index b2e24f598646d068671330671196661e44b03291..5adaf1df3c051342b2f01c8ce9ec5e281806e898 100644 (file)
@@ -567,6 +567,10 @@ func (fd *netFD) accept(toAddr func(syscall.Sockaddr) Addr) (nfd *netFD, err os.
        var s, e int
        var sa syscall.Sockaddr
        for {
+               if fd.closing {
+                       syscall.ForkLock.RUnlock()
+                       return nil, os.EINVAL
+               }
                s, sa, e = syscall.Accept(fd.sysfd)
                if e != syscall.EAGAIN {
                        break