mirror of
https://github.com/golang/go
synced 2024-11-17 16:14:42 -07:00
runtime: convert schedt.goidgen to atomic type
For #53821. Change-Id: I84c96ade5982b8e68d1d1787bf1bfa16a17a4fb4 Reviewed-on: https://go-review.googlesource.com/c/go/+/419439 Reviewed-by: Austin Clements <austin@google.com> Run-TryBot: Michael Pratt <mpratt@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
bd302502d3
commit
b464708b46
@ -17,7 +17,6 @@ var AtomicFields = []uintptr{
|
||||
unsafe.Offsetof(p{}.timer0When),
|
||||
unsafe.Offsetof(p{}.timerModifiedEarliest),
|
||||
unsafe.Offsetof(p{}.gcFractionalMarkTime),
|
||||
unsafe.Offsetof(schedt{}.goidgen),
|
||||
unsafe.Offsetof(schedt{}.lastpoll),
|
||||
unsafe.Offsetof(schedt{}.pollUntil),
|
||||
unsafe.Offsetof(schedt{}.timeToRun),
|
||||
|
@ -1919,7 +1919,7 @@ func oneNewExtraM() {
|
||||
mp.lockedInt++
|
||||
mp.lockedg.set(gp)
|
||||
gp.lockedm.set(mp)
|
||||
gp.goid = int64(atomic.Xadd64(&sched.goidgen, 1))
|
||||
gp.goid = int64(sched.goidgen.Add(1))
|
||||
if raceenabled {
|
||||
gp.racectx = racegostart(abi.FuncPCABIInternal(newextram) + sys.PCQuantum)
|
||||
}
|
||||
@ -4168,7 +4168,7 @@ func newproc1(fn *funcval, callergp *g, callerpc uintptr) *g {
|
||||
// Sched.goidgen is the last allocated id,
|
||||
// this batch must be [sched.goidgen+1, sched.goidgen+GoidCacheBatch].
|
||||
// At startup sched.goidgen=0, so main goroutine receives goid=1.
|
||||
pp.goidcache = atomic.Xadd64(&sched.goidgen, _GoidCacheBatch)
|
||||
pp.goidcache = sched.goidgen.Add(_GoidCacheBatch)
|
||||
pp.goidcache -= _GoidCacheBatch - 1
|
||||
pp.goidcacheend = pp.goidcache + _GoidCacheBatch
|
||||
}
|
||||
|
@ -759,7 +759,7 @@ type p struct {
|
||||
|
||||
type schedt struct {
|
||||
// accessed atomically. keep at top to ensure alignment on 32-bit systems.
|
||||
goidgen uint64
|
||||
goidgen atomic.Uint64
|
||||
lastpoll uint64 // time of last network poll, 0 if currently polling
|
||||
pollUntil uint64 // time to which current poll is sleeping
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user