package
0.0.0-20220521092526-d433f404cd13
Repository: https://github.com/golang-design/under-the-hood.git
Documentation: pkg.go.dev

# Functions

AddInt32 atomically adds delta to *addr and returns the new value.
AddInt64 atomically adds delta to *addr and returns the new value.
AddUint32 atomically adds delta to *addr and returns the new value.
AddUint64 自动将 delta 加到 *addr 并返回一个新值 为了从 x 减去有符号的常量值 c,可以使用 AddUint64(&x, ^uint64(c-1)) 特别地,递减 x 可以使用 AddUint64(&x, ^uint64(0)).
AddUintptr atomically adds delta to *addr and returns the new value.
CompareAndSwapInt32 executes the compare-and-swap operation for an int32 value.
CompareAndSwapInt64 executes the compare-and-swap operation for an int64 value.
CompareAndSwapPointer executes the compare-and-swap operation for a unsafe.Pointer value.
CompareAndSwapUint32 executes the compare-and-swap operation for a uint32 value.
CompareAndSwapUint64 executes the compare-and-swap operation for a uint64 value.
CompareAndSwapUintptr executes the compare-and-swap operation for a uintptr value.
LoadInt32 atomically loads *addr.
LoadInt64 atomically loads *addr.
LoadPointer atomically loads *addr.
LoadUint32 atomically loads *addr.
LoadUint64 atomically loads *addr.
LoadUintptr atomically loads *addr.
StoreInt32 atomically stores val into *addr.
StoreInt64 atomically stores val into *addr.
StorePointer 将 val 原子的存入 *addr 中.
StoreUint32 atomically stores val into *addr.
StoreUint64 atomically stores val into *addr.
StoreUintptr atomically stores val into *addr.
SwapInt32 atomically stores new into *addr and returns the previous *addr value.
SwapInt64 atomically stores new into *addr and returns the previous *addr value.
SwapPointer atomically stores new into *addr and returns the previous *addr value.
SwapUint32 atomically stores new into *addr and returns the previous *addr value.
SwapUint64 atomically stores new into *addr and returns the previous *addr value.
SwapUintptr atomically stores new into *addr and returns the previous *addr value.

# Structs

Value 提供了相同类型值的原子 load 和 store 操作 零值的 Load 会返回 nil 一旦 Store 被调用,Value 不能被复制.