diff options
author | Michael Hoisie <hoisie@gmail.com> | 2011-01-04 11:55:13 -0500 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2011-01-04 11:55:13 -0500 |
commit | ed1cbca81fcf20bc933a81bb4aa7281b34a96e55 (patch) | |
tree | c0b0068615245c493e3aa1eb6ed70fb1b2e7ce59 | |
parent | bf453eba9008c37b56ac5239e585040414e8e28e (diff) | |
download | go-ed1cbca81fcf20bc933a81bb4aa7281b34a96e55.tar.gz go-ed1cbca81fcf20bc933a81bb4aa7281b34a96e55.zip |
net: fix close of Listener
Fixes #1375.
R=rsc, r
CC=golang-dev
https://golang.org/cl/3731048
-rw-r--r-- | src/pkg/net/fd.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/pkg/net/fd.go b/src/pkg/net/fd.go index b2e24f5986..5adaf1df3c 100644 --- a/src/pkg/net/fd.go +++ b/src/pkg/net/fd.go @@ -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 |