mirror of https://github.com/golang/go.git
sync/atomic: explain how to subtract an unsigned constant
Explain for those unfamiliar with twos-complement arithmetic how to implement negation of signed positive constant. Fixes #6408. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/14267044
This commit is contained in:
parent
01479b6c4a
commit
c4579635cf
|
|
@ -94,12 +94,16 @@ func CompareAndSwapPointer(addr *unsafe.Pointer, old, new unsafe.Pointer) (swapp
|
|||
func AddInt32(addr *int32, delta int32) (new int32)
|
||||
|
||||
// AddUint32 atomically adds delta to *addr and returns the new value.
|
||||
// To subtract a signed positive constant value c from x, do AddUint32(&x, ^uint32(c-1)).
|
||||
// In particular, to decrement x, do AddUint32(&x, ^uint32(0)).
|
||||
func AddUint32(addr *uint32, delta uint32) (new uint32)
|
||||
|
||||
// AddInt64 atomically adds delta to *addr and returns the new value.
|
||||
func AddInt64(addr *int64, delta int64) (new int64)
|
||||
|
||||
// AddUint64 atomically adds delta to *addr and returns the new value.
|
||||
// To subtract a signed positive constant value c from x, do AddUint64(&x, ^uint64(c-1)).
|
||||
// In particular, to decrement x, do AddUint64(&x, ^uint64(0)).
|
||||
func AddUint64(addr *uint64, delta uint64) (new uint64)
|
||||
|
||||
// AddUintptr atomically adds delta to *addr and returns the new value.
|
||||
|
|
|
|||
Loading…
Reference in New Issue