mirror of
https://github.com/golang/go.git
synced 2025-05-30 19:52:53 +00:00
runtime: minor updates to netpoll comments
In Go 1.4 we renamed READY to pdReady and WAIT to pdWait as part of rewriting netpoll from C to Go. Finish updating the comments to use the new names. Change-Id: I6cefc698b46c58211fd6be1489bdd70419454962 Reviewed-on: https://go-review.googlesource.com/c/go/+/223998 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
019421d17f
commit
b3b174ffcf
@ -39,12 +39,12 @@ import (
|
|||||||
// a goroutine consumes the notification by changing the state to nil.
|
// a goroutine consumes the notification by changing the state to nil.
|
||||||
// pdWait - a goroutine prepares to park on the semaphore, but not yet parked;
|
// pdWait - a goroutine prepares to park on the semaphore, but not yet parked;
|
||||||
// the goroutine commits to park by changing the state to G pointer,
|
// the goroutine commits to park by changing the state to G pointer,
|
||||||
// or, alternatively, concurrent io notification changes the state to READY,
|
// or, alternatively, concurrent io notification changes the state to pdReady,
|
||||||
// or, alternatively, concurrent timeout/close changes the state to nil.
|
// or, alternatively, concurrent timeout/close changes the state to nil.
|
||||||
// G pointer - the goroutine is blocked on the semaphore;
|
// G pointer - the goroutine is blocked on the semaphore;
|
||||||
// io notification or timeout/close changes the state to READY or nil respectively
|
// io notification or timeout/close changes the state to pdReady or nil respectively
|
||||||
// and unparks the goroutine.
|
// and unparks the goroutine.
|
||||||
// nil - nothing of the above.
|
// nil - none of the above.
|
||||||
const (
|
const (
|
||||||
pdReady uintptr = 1
|
pdReady uintptr = 1
|
||||||
pdWait uintptr = 2
|
pdWait uintptr = 2
|
||||||
@ -397,7 +397,7 @@ func netpollblock(pd *pollDesc, mode int32, waitio bool) bool {
|
|||||||
gpp = &pd.wg
|
gpp = &pd.wg
|
||||||
}
|
}
|
||||||
|
|
||||||
// set the gpp semaphore to WAIT
|
// set the gpp semaphore to pdWait
|
||||||
for {
|
for {
|
||||||
old := *gpp
|
old := *gpp
|
||||||
if old == pdReady {
|
if old == pdReady {
|
||||||
@ -412,13 +412,13 @@ func netpollblock(pd *pollDesc, mode int32, waitio bool) bool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// need to recheck error states after setting gpp to WAIT
|
// need to recheck error states after setting gpp to pdWait
|
||||||
// this is necessary because runtime_pollUnblock/runtime_pollSetDeadline/deadlineimpl
|
// this is necessary because runtime_pollUnblock/runtime_pollSetDeadline/deadlineimpl
|
||||||
// do the opposite: store to closing/rd/wd, membarrier, load of rg/wg
|
// do the opposite: store to closing/rd/wd, membarrier, load of rg/wg
|
||||||
if waitio || netpollcheckerr(pd, mode) == 0 {
|
if waitio || netpollcheckerr(pd, mode) == 0 {
|
||||||
gopark(netpollblockcommit, unsafe.Pointer(gpp), waitReasonIOWait, traceEvGoBlockNet, 5)
|
gopark(netpollblockcommit, unsafe.Pointer(gpp), waitReasonIOWait, traceEvGoBlockNet, 5)
|
||||||
}
|
}
|
||||||
// be careful to not lose concurrent READY notification
|
// be careful to not lose concurrent pdReady notification
|
||||||
old := atomic.Xchguintptr(gpp, 0)
|
old := atomic.Xchguintptr(gpp, 0)
|
||||||
if old > pdWait {
|
if old > pdWait {
|
||||||
throw("runtime: corrupted polldesc")
|
throw("runtime: corrupted polldesc")
|
||||||
@ -438,7 +438,7 @@ func netpollunblock(pd *pollDesc, mode int32, ioready bool) *g {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if old == 0 && !ioready {
|
if old == 0 && !ioready {
|
||||||
// Only set READY for ioready. runtime_pollWait
|
// Only set pdReady for ioready. runtime_pollWait
|
||||||
// will check for timeout/cancel before waiting.
|
// will check for timeout/cancel before waiting.
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user