]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: convert local var cunlock at doTestParallelReaders to atomic type
authorcuiweixie <cuiweixie@gmail.com>
Fri, 2 Sep 2022 02:37:16 +0000 (10:37 +0800)
committerDaniel Martí <mvdan@mvdan.cc>
Mon, 5 Sep 2022 08:08:09 +0000 (08:08 +0000)
For #53821

Change-Id: I17440ea30827976a8d3755851a2496f26aea13b1
Reviewed-on: https://go-review.googlesource.com/c/go/+/427137
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: xie cui <523516579@qq.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
src/runtime/rwmutex_test.go

index f15d367b326fb9552f1e7f431cae77b18913afb7..ddb16aead4382b615f16dbac8045fc947320220e 100644 (file)
@@ -17,10 +17,10 @@ import (
        "testing"
 )
 
-func parallelReader(m *RWMutex, clocked chan bool, cunlock *uint32, cdone chan bool) {
+func parallelReader(m *RWMutex, clocked chan bool, cunlock *atomic.Bool, cdone chan bool) {
        m.RLock()
        clocked <- true
-       for atomic.LoadUint32(cunlock) == 0 {
+       for !cunlock.Load() {
        }
        m.RUnlock()
        cdone <- true
@@ -30,7 +30,7 @@ func doTestParallelReaders(numReaders int) {
        GOMAXPROCS(numReaders + 1)
        var m RWMutex
        clocked := make(chan bool, numReaders)
-       var cunlock uint32
+       var cunlock atomic.Bool
        cdone := make(chan bool)
        for i := 0; i < numReaders; i++ {
                go parallelReader(&m, clocked, &cunlock, cdone)
@@ -39,7 +39,7 @@ func doTestParallelReaders(numReaders int) {
        for i := 0; i < numReaders; i++ {
                <-clocked
        }
-       atomic.StoreUint32(&cunlock, 1)
+       cunlock.Store(true)
        // Wait for the goroutines to finish.
        for i := 0; i < numReaders; i++ {
                <-cdone