diff options
Diffstat (limited to 'libgo/go/runtime/runtime.go')
-rw-r--r-- | libgo/go/runtime/runtime.go | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/libgo/go/runtime/runtime.go b/libgo/go/runtime/runtime.go index e63130b..58710de 100644 --- a/libgo/go/runtime/runtime.go +++ b/libgo/go/runtime/runtime.go @@ -19,20 +19,17 @@ import ( // //go:linkname tickspersecond runtime.tickspersecond -var ticks struct { - lock mutex - pad uint32 // ensure 8-byte alignment of val on 386 - val uint64 -} +var ticksLock mutex +var ticksVal uint64 // Note: Called by runtime/pprof in addition to runtime code. func tickspersecond() int64 { - r := int64(atomic.Load64(&ticks.val)) + r := int64(atomic.Load64(&ticksVal)) if r != 0 { return r } - lock(&ticks.lock) - r = int64(ticks.val) + lock(&ticksLock) + r = int64(ticksVal) if r == 0 { t0 := nanotime() c0 := cputicks() @@ -46,9 +43,9 @@ func tickspersecond() int64 { if r == 0 { r++ } - atomic.Store64(&ticks.val, uint64(r)) + atomic.Store64(&ticksVal, uint64(r)) } - unlock(&ticks.lock) + unlock(&ticksLock) return r } |