aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcuiweixie <cuiweixie@gmail.com>2022-08-27 09:45:15 +0800
committerMichael Pratt <mpratt@google.com>2022-09-01 18:02:28 +0000
commit5a6db7c48fb8a1e7b6d8f59ba4e3b7ecb8c35fc7 (patch)
tree75ddc372861bddfa4ae6ccdf9eacbd33613640c4 /src
parentaf991a6d28949cd27a41a93b46abf42cbf07023d (diff)
downloadgo-5a6db7c48fb8a1e7b6d8f59ba4e3b7ecb8c35fc7.tar.xz
runtime: convert ncgocall to atomic type
For #53821 Change-Id: Ib0d62ee36487b3ed68e063976968f3cac6499e4b Reviewed-on: https://go-review.googlesource.com/c/go/+/426075 Reviewed-by: Michael Pratt <mpratt@google.com> Run-TryBot: xie cui <523516579@qq.com> Reviewed-by: Heschi Kreinick <heschi@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src')
-rw-r--r--src/runtime/cgocall.go2
-rw-r--r--src/runtime/debug.go2
-rw-r--r--src/runtime/proc.go2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/runtime/cgocall.go b/src/runtime/cgocall.go
index 0a25cb6562..9d6568b292 100644
--- a/src/runtime/cgocall.go
+++ b/src/runtime/cgocall.go
@@ -111,7 +111,7 @@ func syscall_cgocaller(fn unsafe.Pointer, args ...uintptr) uintptr {
return as.retval
}
-var ncgocall uint64 // number of cgo calls in total for dead m
+var ncgocall atomic.Uint64 // number of cgo calls in total for dead m
// Call from Go to C.
//
diff --git a/src/runtime/debug.go b/src/runtime/debug.go
index 669c36f0d5..531c316b97 100644
--- a/src/runtime/debug.go
+++ b/src/runtime/debug.go
@@ -45,7 +45,7 @@ func NumCPU() int {
// NumCgoCall returns the number of cgo calls made by the current process.
func NumCgoCall() int64 {
- var n = int64(atomic.Load64(&ncgocall))
+ var n = int64(ncgocall.Load())
for mp := (*m)(atomic.Loadp(unsafe.Pointer(&allm))); mp != nil; mp = mp.alllink {
n += int64(mp.ncgocall)
}
diff --git a/src/runtime/proc.go b/src/runtime/proc.go
index 6ecb786d1b..89cb5c70f0 100644
--- a/src/runtime/proc.go
+++ b/src/runtime/proc.go
@@ -1530,7 +1530,7 @@ found:
}
unlock(&sched.lock)
- atomic.Xadd64(&ncgocall, int64(mp.ncgocall))
+ ncgocall.Add(int64(mp.ncgocall))
// Release the P.
handoffp(releasep())