runtime: convert netpoll netpollInited to atomic type

Updates #53821

Change-Id: Ifa2e5f5d4047117b1887c1e56851355547bb4f33
Reviewed-on: https://go-review.googlesource.com/c/go/+/423881
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Keith Randall <khr@google.com>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
This commit is contained in:
Cuong Manh Le 2022-08-17 16:27:01 +07:00
parent 04d8c2327d
commit dea67a9b34
3 changed files with 9 additions and 9 deletions

View file

@ -177,7 +177,7 @@ type pollCache struct {
var (
netpollInitLock mutex
netpollInited uint32
netpollInited atomic.Uint32
pollcache pollCache
netpollWaiters uint32
@ -189,19 +189,19 @@ func poll_runtime_pollServerInit() {
}
func netpollGenericInit() {
if atomic.Load(&netpollInited) == 0 {
if netpollInited.Load() == 0 {
lockInit(&netpollInitLock, lockRankNetpollInit)
lock(&netpollInitLock)
if netpollInited == 0 {
if netpollInited.Load() == 0 {
netpollinit()
atomic.Store(&netpollInited, 1)
netpollInited.Store(1)
}
unlock(&netpollInitLock)
}
}
func netpollinited() bool {
return atomic.Load(&netpollInited) != 0
return netpollInited.Load() != 0
}
//go:linkname poll_runtime_isPollServerDescriptor internal/poll.runtime_isPollServerDescriptor

View file

@ -8,7 +8,7 @@ package runtime
import "runtime/internal/atomic"
var netpollInited uint32
var netpollInited atomic.Uint32
var netpollWaiters uint32
var netpollStubLock mutex
@ -19,7 +19,7 @@ var netpollBrokenLock mutex
var netpollBroken bool
func netpollGenericInit() {
atomic.Store(&netpollInited, 1)
netpollInited.Store(1)
}
func netpollBreak() {
@ -57,5 +57,5 @@ func netpoll(delay int64) gList {
}
func netpollinited() bool {
return atomic.Load(&netpollInited) != 0
return netpollInited.Load() != 0
}

View file

@ -289,7 +289,7 @@ func addtimer(t *timer) {
func doaddtimer(pp *p, t *timer) {
// Timers rely on the network poller, so make sure the poller
// has started.
if netpollInited == 0 {
if netpollInited.Load() == 0 {
netpollGenericInit()
}