]> Cypherpunks.ru repositories - gostls13.git/commitdiff
runtime/cgo: use atomic.Uintptr instead of atomic.AddUintptr.
authorqmuntal <quimmuntal@gmail.com>
Sun, 30 Apr 2023 09:38:00 +0000 (11:38 +0200)
committerGopher Robot <gobot@golang.org>
Mon, 1 May 2023 15:01:07 +0000 (15:01 +0000)
cgo.NewHandle atomically increments a global uintptr index using
atomic.AddUintptr. Use atomic.Uintptr instead, which is
cleaner and clearer.

Change-Id: I845b3e4cb8c461e787a9b9bb2a9ceaaef1d21d8e
Reviewed-on: https://go-review.googlesource.com/c/go/+/490775
Run-TryBot: Quim Muntal <quimmuntal@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
src/runtime/cgo/handle.go

index d711900d7990ee0e509f8db5b2e57523185949d1..061dfb0e2e2194d599ea4ee6b99e765c81423a54 100644 (file)
@@ -106,7 +106,7 @@ type Handle uintptr
 // The intended use is to pass the returned handle to C code, which
 // passes it back to Go, which calls Value.
 func NewHandle(v any) Handle {
-       h := atomic.AddUintptr(&handleIdx, 1)
+       h := handleIdx.Add(1)
        if h == 0 {
                panic("runtime/cgo: ran out of handle space")
        }
@@ -140,5 +140,5 @@ func (h Handle) Delete() {
 
 var (
        handles   = sync.Map{} // map[Handle]interface{}
-       handleIdx uintptr      // atomic
+       handleIdx atomic.Uintptr
 )