]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: convert mSpanStateBox.s to atomic type
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Wed, 17 Aug 2022 07:34:46 +0000 (14:34 +0700)
committerGopher Robot <gobot@golang.org>
Wed, 17 Aug 2022 16:26:24 +0000 (16:26 +0000)
Updates #53821

Change-Id: I02f31a7a8295deb3e840565412abf10ff776c2c3
Reviewed-on: https://go-review.googlesource.com/c/go/+/424395
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Pratt <mpratt@google.com>
Reviewed-by: Keith Randall <khr@google.com>
src/runtime/mheap.go

index 12307594f05062d0e50fb4030a6cf052816ba09d..00d445c1fa927bdc8f42a6214024f10637b03fc3 100644 (file)
@@ -363,19 +363,19 @@ var mSpanStateNames = []string{
        "mSpanFree",
 }
 
-// mSpanStateBox holds an mSpanState and provides atomic operations on
-// it. This is a separate type to disallow accidental comparison or
-// assignment with mSpanState.
+// mSpanStateBox holds an atomic.Uint8 to provide atomic operations on
+// an mSpanState. This is a separate type to disallow accidental comparison
+// or assignment with mSpanState.
 type mSpanStateBox struct {
-       s mSpanState
+       s atomic.Uint8
 }
 
 func (b *mSpanStateBox) set(s mSpanState) {
-       atomic.Store8((*uint8)(&b.s), uint8(s))
+       b.s.Store(uint8(s))
 }
 
 func (b *mSpanStateBox) get() mSpanState {
-       return mSpanState(atomic.Load8((*uint8)(&b.s)))
+       return mSpanState(b.s.Load())
 }
 
 // mSpanList heads a linked list of spans.