mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: convert prof.hz to atomic type
This converts several unsynchronized reads (reads without holding prof.signalLock) into atomic reads. For #53821. For #52912. Change-Id: I421b96a22fbe26d699bcc21010c8a9e0f4efc276 Reviewed-on: https://go-review.googlesource.com/c/go/+/420196 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
3121c2bf64
commit
54cf1b107d
3 changed files with 11 additions and 8 deletions
|
|
@ -502,7 +502,7 @@ var sigprofCallersUse uint32
|
|||
//go:nosplit
|
||||
//go:nowritebarrierrec
|
||||
func sigprofNonGo(sig uint32, info *siginfo, ctx unsafe.Pointer) {
|
||||
if prof.hz != 0 {
|
||||
if prof.hz.Load() != 0 {
|
||||
c := &sigctxt{info, ctx}
|
||||
// Some platforms (Linux) have per-thread timers, which we use in
|
||||
// combination with the process-wide timer. Avoid double-counting.
|
||||
|
|
@ -525,7 +525,7 @@ func sigprofNonGo(sig uint32, info *siginfo, ctx unsafe.Pointer) {
|
|||
//go:nosplit
|
||||
//go:nowritebarrierrec
|
||||
func sigprofNonGoPC(pc uintptr) {
|
||||
if prof.hz != 0 {
|
||||
if prof.hz.Load() != 0 {
|
||||
stk := []uintptr{
|
||||
pc,
|
||||
abi.FuncPCABIInternal(_ExternalCode) + sys.PCQuantum,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue