]> Cypherpunks.ru repositories - gostls13.git/commitdiff
Revert "runtime: convert local var stop,ready at TestDebugCallUnsafePoint to atomic...
authorDaniel Martí <mvdan@mvdan.cc>
Mon, 5 Sep 2022 08:30:02 +0000 (08:30 +0000)
committerMichael Pratt <mpratt@google.com>
Tue, 6 Sep 2022 14:44:23 +0000 (14:44 +0000)
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>
src/runtime/debug_test.go

index b231be344c0d666bd33345eee2c1921c22002d54..75fe07ec2a2df87e3d6857ff920911440c708948 100644 (file)
@@ -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()
        }