diff options
| author | Daniel Martà <mvdan@mvdan.cc> | 2022-09-05 08:30:02 +0000 |
|---|---|---|
| committer | Michael Pratt <mpratt@google.com> | 2022-09-06 14:44:23 +0000 |
| commit | a60a3dc5bc0336bd6b499bc7e1feb459b1e4a4bc (patch) | |
| tree | 0b11193e957efeea9309ca3b520fb5839724fc2f /src | |
| parent | 8a323542190ec3ba8f0ff0ec057e75e25ad1f408 (diff) | |
| download | go-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.go | 12 |
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() } |
