From: Mikio Hara Date: Wed, 4 Feb 2015 09:00:52 +0000 (+0900) Subject: net: remove the dregs of old built-in poll server X-Git-Tag: go1.5beta1~2143 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c768a84b38e1fa2c8850d75d75b0fcbfd409e61d;p=gostls13.git net: remove the dregs of old built-in poll server We don't need placeholders for the old built-in poll server any more. Change-Id: I3a510aec6a30bc2ac97676c400177cdfe557b8dc Reviewed-on: https://go-review.googlesource.com/3863 Reviewed-by: Dmitry Vyukov --- diff --git a/src/net/fd_poll_nacl.go b/src/net/fd_poll_nacl.go index a3701f8764..cdf14e32ce 100644 --- a/src/net/fd_poll_nacl.go +++ b/src/net/fd_poll_nacl.go @@ -18,18 +18,11 @@ func (pd *pollDesc) Init(fd *netFD) error { pd.fd = fd; return nil } func (pd *pollDesc) Close() {} -func (pd *pollDesc) Lock() {} - -func (pd *pollDesc) Unlock() {} - -func (pd *pollDesc) Wakeup() {} - -func (pd *pollDesc) Evict() bool { +func (pd *pollDesc) Evict() { pd.closing = true if pd.fd != nil { syscall.StopIO(pd.fd.sysfd) } - return false } func (pd *pollDesc) Prepare(mode int) error { diff --git a/src/net/fd_poll_runtime.go b/src/net/fd_poll_runtime.go index 2bddc836c7..8522ccebfb 100644 --- a/src/net/fd_poll_runtime.go +++ b/src/net/fd_poll_runtime.go @@ -48,23 +48,12 @@ func (pd *pollDesc) Close() { pd.runtimeCtx = 0 } -func (pd *pollDesc) Lock() { -} - -func (pd *pollDesc) Unlock() { -} - -func (pd *pollDesc) Wakeup() { -} - // Evict evicts fd from the pending list, unblocking any I/O running on fd. -// Return value is whether the pollServer should be woken up. -func (pd *pollDesc) Evict() bool { +func (pd *pollDesc) Evict() { if pd.runtimeCtx == 0 { - return false + return } runtime_pollUnblock(pd.runtimeCtx) - return false } func (pd *pollDesc) Prepare(mode int) error { diff --git a/src/net/fd_unix.go b/src/net/fd_unix.go index 16fe61085f..24e6c59f37 100644 --- a/src/net/fd_unix.go +++ b/src/net/fd_unix.go @@ -187,9 +187,7 @@ func (fd *netFD) writeUnlock() { } func (fd *netFD) Close() error { - fd.pd.Lock() // needed for both fd.incref(true) and pollDesc.Evict if !fd.fdmu.IncrefAndClose() { - fd.pd.Unlock() return errClosing } // Unblock any I/O. Once it all unblocks and returns, @@ -197,12 +195,8 @@ func (fd *netFD) Close() error { // the final decref will close fd.sysfd. This should happen // fairly quickly, since all the I/O is non-blocking, and any // attempts to block in the pollDesc will return errClosing. - doWakeup := fd.pd.Evict() - fd.pd.Unlock() + fd.pd.Evict() fd.decref() - if doWakeup { - fd.pd.Wakeup() - } return nil }