atomicbitops

package
v0.0.0-...-23e6066 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 3, 2018 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Overview

Package atomicbitops provides basic bitwise operations in an atomic way. The implementation on amd64 leverages the LOCK prefix directly instead of relying on the generic cas primitives.

WARNING: the bitwise ops provided in this package doesn't imply any memory ordering. Using them to construct locks must employ proper memory barriers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AndUint32

func AndUint32(addr *uint32, val uint32)

AndUint32 atomically applies bitwise and operation to *addr with val.

func AndUint64

func AndUint64(addr *uint64, val uint64)

AndUint64 atomically applies bitwise and operation to *addr with val.

func CompareAndSwapUint32

func CompareAndSwapUint32(addr *uint32, old, new uint32) uint32

CompareAndSwapUint32 is like sync/atomic.CompareAndSwapUint32, but returns the value previously stored at addr.

func CompareAndSwapUint64

func CompareAndSwapUint64(addr *uint64, old, new uint64) uint64

CompareAndSwapUint64 is like sync/atomic.CompareAndSwapUint64, but returns the value previously stored at addr.

func DecUnlessOneInt32

func DecUnlessOneInt32(addr *int32) bool

DecUnlessOneInt32 decrements the value stored at the given address and returns true; unless the value stored in the pointer is 1, in which case it is left unmodified and false is returned.

func IncUnlessZeroInt32

func IncUnlessZeroInt32(addr *int32) bool

IncUnlessZeroInt32 increments the value stored at the given address and returns true; unless the value stored in the pointer is zero, in which case it is left unmodified and false is returned.

func OrUint32

func OrUint32(addr *uint32, val uint32)

OrUint32 atomically applies bitwise or operation to *addr with val.

func OrUint64

func OrUint64(addr *uint64, val uint64)

OrUint64 atomically applies bitwise or operation to *addr with val.

func XorUint32

func XorUint32(addr *uint32, val uint32)

XorUint32 atomically applies bitwise xor operation to *addr with val.

func XorUint64

func XorUint64(addr *uint64, val uint64)

XorUint64 atomically applies bitwise xor operation to *addr with val.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL