aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Martí <mvdan@mvdan.cc>2022-09-05 08:30:02 +0000
committerMichael Pratt <mpratt@google.com>2022-09-06 14:44:23 +0000
commita60a3dc5bc0336bd6b499bc7e1feb459b1e4a4bc (patch)
tree0b11193e957efeea9309ca3b520fb5839724fc2f /src
parent8a323542190ec3ba8f0ff0ec057e75e25ad1f408 (diff)
downloadgo-a60a3dc5bc0336bd6b499bc7e1feb459b1e4a4bc.tar.xz
Revert "runtime: convert local var stop,ready at TestDebugCallUnsafePoint to atomic type"
This reverts https://go.dev/cl/427135. Reason for revert: broke the test it modified on linux-amd64-noopt. --- FAIL: TestDebugCallUnsafePoint (0.00s) debug_test.go:265: want "call not at safe point", got %!s(<nil>) Change-Id: I044c9720aed2d5e48b56bd7ab2781462270dcae9 Reviewed-on: https://go-review.googlesource.com/c/go/+/428395 Reviewed-by: xie cui <523516579@qq.com> Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: hopehook <hopehook@golangcn.org> Reviewed-by: Michael Pratt <mpratt@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/runtime/debug_test.go12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/runtime/debug_test.go b/src/runtime/debug_test.go
index b231be344c..75fe07ec2a 100644
--- a/src/runtime/debug_test.go
+++ b/src/runtime/debug_test.go
@@ -224,7 +224,7 @@ func TestDebugCallGrowStack(t *testing.T) {
}
//go:nosplit
-func debugCallUnsafePointWorker(gpp **runtime.G, ready, stop *atomic.Bool) {
+func debugCallUnsafePointWorker(gpp **runtime.G, ready, stop *uint32) {
// The nosplit causes this function to not contain safe-points
// except at calls.
runtime.LockOSThread()
@@ -232,8 +232,8 @@ func debugCallUnsafePointWorker(gpp **runtime.G, ready, stop *atomic.Bool) {
*gpp = runtime.Getg()
- for !stop.Load() {
- ready.Store(true)
+ for atomic.LoadUint32(stop) == 0 {
+ atomic.StoreUint32(ready, 1)
}
}
@@ -253,10 +253,10 @@ func TestDebugCallUnsafePoint(t *testing.T) {
// Test that the runtime refuses call injection at unsafe points.
var g *runtime.G
- var ready, stop atomic.Bool
- defer stop.Store(true)
+ var ready, stop uint32
+ defer atomic.StoreUint32(&stop, 1)
go debugCallUnsafePointWorker(&g, &ready, &stop)
- for !ready.Load() {
+ for atomic.LoadUint32(&ready) == 0 {
runtime.Gosched()
}