From efbb12ae8a4a9ea4b15b2929f9adc931c43b315b Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 28 Mar 2011 18:35:53 +0000 Subject: re PR go/48312 (http, rpc, websocket tests hang on Solaris 2/x86) PR go/48312 Fix fd_select.go for changes in FD handling. We have to wake up the goroutine waiting in select each time we change the set of descriptors we are waiting for, unlike epoll. From-SVN: r171623 --- libgo/go/net/fd.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'libgo/go/net/fd.go') diff --git a/libgo/go/net/fd.go b/libgo/go/net/fd.go index 7acee14..c8440ae 100644 --- a/libgo/go/net/fd.go +++ b/libgo/go/net/fd.go @@ -122,9 +122,13 @@ func (s *pollServer) AddFD(fd *netFD, mode int) { doWakeup = true } - if err := s.poll.AddFD(intfd, mode, false); err != nil { + wake, err := s.poll.AddFD(intfd, mode, false) + if err != nil { panic("pollServer AddFD " + err.String()) } + if wake { + doWakeup = true + } s.Unlock() -- cgit v1.1