1
0
mirror of https://github.com/golang/go synced 2024-11-18 18:44:42 -07:00

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 <dvyukov@google.com>
This commit is contained in:
Mikio Hara 2015-02-04 18:00:52 +09:00
parent d2abbf3ccf
commit c768a84b38
3 changed files with 4 additions and 28 deletions

View File

@ -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 {

View File

@ -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 {

View File

@ -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
}