Namespace for a suite of platform atomic operations.
Declared in <bsls_atomicoperations.h>
struct AtomicOperations;
AtomicOperations provides a namespace for a suite of atomic operations on the following types as defined by the AtomicTypes typedef: integer - AtomicTypes::Int, 64bit integer - AtomicTypes::Int64, pointer - AtomicTypes::Pointer.
| Name | Description |
|---|---|
AtomicTypes | Alias for platform-specific atomic integer, pointer, and Int64 types. |
Imp | Platform-specific atomic operations implementation. |
| Name | Description |
|---|---|
addInt | Atomically add to the specified atomicInt the specified value, providing the sequential consistency memory ordering guarantee. |
addInt64 | Atomically add to the specified atomicInt the specified value, providing the sequential consistency memory ordering guarantee. |
addInt64AcqRel | Atomically add to the specified atomicInt the specified value, providing the acquire/release memory ordering guarantee. |
addInt64Nv | Atomically add to the specified atomicInt the specified value and return the resulting value, providing the sequential consistency memory ordering guarantee. |
addInt64NvAcqRel | Atomically add to the specified atomicInt the specified value and return the resulting value, providing the acquire/release memory ordering guarantee. |
addInt64NvRelaxed | Atomically add to the specified atomicInt the specified value and return the resulting value, without providing any memory ordering guarantees. |
addInt64Relaxed | Atomically add to the specified atomicInt the specified value, without providing any memory ordering guarantees. |
addIntAcqRel | Atomically add to the specified atomicInt the specified value, providing the acquire/release memory ordering guarantee. |
addIntNv | Atomically add to the specified atomicInt the specified value and return the resulting value, providing the sequential consistency memory ordering guarantee. |
addIntNvAcqRel | Atomically add to the specified atomicInt the specified value and return the resulting value, providing the acquire/release memory ordering guarantee. |
addIntNvRelaxed | Atomically add to the specified atomicInt the specified value and return the resulting value, without providing any memory ordering guarantees. |
addIntRelaxed | Atomically add to the specified atomicInt the specified value, without providing any memory ordering guarantees. |
addUint | Atomically add to the specified atomicUint the specified value, providing the sequential consistency memory ordering guarantee. |
addUint64 | Atomically add to the specified atomicUint the specified value, providing the sequential consistency memory ordering guarantee. |
addUint64AcqRel | Atomically add to the specified atomicUint the specified value, providing the acquire/release memory ordering guarantee. |
addUint64Nv | Atomically add to the specified atomicUint the specified value and return the resulting value, providing the sequential consistency memory ordering guarantee. |
addUint64NvAcqRel | Atomically add to the specified atomicUint the specified value and return the resulting value, providing the acquire/release memory ordering guarantee. |
addUint64NvRelaxed | Atomically add to the specified atomicUint the specified value and return the resulting value, without providing any memory ordering guarantees. |
addUint64Relaxed | Atomically add to the specified atomicUint the specified value, without providing any memory ordering guarantees. |
addUintAcqRel | Atomically add to the specified atomicUint the specified value, providing the acquire/release memory ordering guarantee. |
addUintNv | Atomically add to the specified atomicUint the specified value and return the resulting value, providing the sequential consistency memory ordering guarantee. |
addUintNvAcqRel | Atomically add to the specified atomicUint the specified value and return the resulting value, providing the acquire/release memory ordering guarantee. |
addUintNvRelaxed | Atomically add to the specified atomicUint the specified value and return the resulting value, without providing any memory ordering guarantees. |
addUintRelaxed | Atomically add to the specified atomicUint the specified value, without providing any memory ordering guarantees. |
decrementInt | Atomically decrement the value of the specified atomicInt by 1, providing the sequential consistency memory ordering guarantee. |
decrementInt64 | Atomically decrement the specified atomicInt by 1, providing the sequential consistency memory ordering guarantee. |
decrementInt64AcqRel | Atomically decrement the specified atomicInt by 1, providing the acquire/release memory ordering guarantee. |
decrementInt64Nv | Atomically decrement the specified atomicInt by 1 and return the resulting value, providing the sequential consistency memory ordering guarantee. |
decrementInt64NvAcqRel | Atomically decrement the specified atomicInt by 1 and return the resulting value, providing the acquire/release memory ordering guarantee. |
decrementIntAcqRel | Atomically decrement the value of the specified atomicInt by 1, providing the acquire/release memory ordering guarantee. |
decrementIntNv | Atomically decrement the specified atomicInt by 1 and return the resulting value, providing the sequential consistency memory ordering guarantee. |
decrementIntNvAcqRel | Atomically decrement the specified atomicInt by 1 and return the resulting value, providing the acquire/release memory ordering guarantee. |
decrementUint | Atomically decrement the value of the specified atomicUint by 1, providing the sequential consistency memory ordering guarantee. |
decrementUint64 | Atomically decrement the specified atomicUint by 1, providing the sequential consistency memory ordering guarantee. |
decrementUint64AcqRel | Atomically decrement the specified atomicUint by 1, providing the acquire/release memory ordering guarantee. |
decrementUint64Nv | Atomically decrement the specified atomicUint by 1 and return the resulting value, providing the sequential consistency memory ordering guarantee. |
decrementUint64NvAcqRel | Atomically decrement the specified atomicUint by 1 and return the resulting value, providing the acquire/release memory ordering guarantee. |
decrementUintAcqRel | Atomically decrement the value of the specified atomicUint by 1, providing the acquire/release memory ordering guarantee. |
decrementUintNv | Atomically decrement the specified atomicUint by 1 and return the resulting value, providing the sequential consistency memory ordering guarantee. |
decrementUintNvAcqRel | Atomically decrement the specified atomicUint by 1 and return the resulting value, providing the acquire/release memory ordering guarantee. |
getInt | Atomically retrieve the value of the specified atomicInt, providing the sequential consistency memory ordering guarantee. |
getInt64 | Atomically retrieve the value of the specified atomicInt, providing the sequential consistency memory ordering guarantee. |
getInt64Acquire | Atomically retrieve the value of the specified atomicInt, providing the acquire memory ordering guarantee. |
getInt64Relaxed | Atomically retrieve the value of the specified atomicInt, without providing any memory ordering guarantees. |
getIntAcquire | Atomically retrieve the value of the specified atomicInt, providing the acquire memory ordering guarantee. |
getIntRelaxed | Atomically load *atomicInt with relaxed ordering. |
getPtr | Atomically retrieve the value of the specified pointer. |
getPtrAcquire | Atomically retrieve the value of the specified atomicPtr, providing the acquire memory ordering guarantee. |
getPtrRelaxed | Atomically retrieve the value of the specified atomicPtr, without providing any memory ordering guarantees. |
getUint | Atomically retrieve the value of the specified atomicUint, providing the sequential consistency memory ordering guarantee. |
getUint64 | Atomically retrieve the value of the specified atomicUint, providing the sequential consistency memory ordering guarantee. |
getUint64Acquire | Atomically retrieve the value of the specified atomicUint, providing the acquire memory ordering guarantee. |
getUint64Relaxed | Atomically retrieve the value of the specified atomicUint, without providing any memory ordering guarantees. |
getUintAcquire | Atomically retrieve the value of the specified atomicUint, providing the acquire memory ordering guarantee. |
getUintRelaxed | Atomically retrieve the value of the specified atomicUint, without providing any memory ordering guarantees. |
incrementInt | Atomically increment the value of the specified atomicInt by 1, providing the sequential consistency memory ordering guarantee. |
incrementInt64 | Atomically increment the value of the specified atomicInt by 1, providing the sequential consistency memory ordering guarantee. |
incrementInt64AcqRel | Atomically increment the value of the specified atomicInt by 1, providing the acquire/release memory ordering guarantee. |
incrementInt64Nv | Atomically increment the specified atomicInt by 1 and return the resulting value, providing the sequential consistency memory ordering guarantee. |
incrementInt64NvAcqRel | Atomically increment the specified atomicInt by 1 and return the resulting value, providing the acquire/release memory ordering guarantee. |
incrementIntAcqRel | Atomically increment the value of the specified atomicInt by 1, providing the acquire/release memory ordering guarantee. |
incrementIntNv | Atomically increment the specified atomicInt by 1 and return the resulting value, providing the sequential consistency memory ordering guarantee. |
incrementIntNvAcqRel | Atomically increment the specified atomicInt by 1 and return the resulting value, providing the acquire/release memory ordering guarantee. |
incrementUint | Atomically increment the value of the specified atomicUint by 1, providing the sequential consistency memory ordering guarantee. |
incrementUint64 | Atomically increment the value of the specified atomicUint by 1, providing the sequential consistency memory ordering guarantee. |
incrementUint64AcqRel | Atomically increment the value of the specified atomicUint by 1, providing the acquire/release memory ordering guarantee. |
incrementUint64Nv | Atomically increment the specified atomicUint by 1 and return the resulting value, providing the sequential consistency memory ordering guarantee. |
incrementUint64NvAcqRel | Atomically increment the specified atomicUint by 1 and return the resulting value, providing the acquire/release memory ordering guarantee. |
incrementUintAcqRel | Atomically increment the value of the specified atomicUint by 1, providing the acquire/release memory ordering guarantee. |
incrementUintNv | Atomically increment the specified atomicUint by 1 and return the resulting value, providing the sequential consistency memory ordering guarantee. |
incrementUintNvAcqRel | Atomically increment the specified atomicUint by 1 and return the resulting value, providing the acquire/release memory ordering guarantee. |
initInt | Initialize the specified atomicInt and set its value to the optionally specified initialValue. |
initInt64 | Initialize the specified atomicInt and set its value to the optionally specified initialValue. |
initPointer | Initialize the specified atomicPtr and set its value to the optionally specified initialValue. |
initUint | Initialize the specified atomicUint and set its value to the optionally specified initialValue. |
initUint64 | Initialize the specified atomicUint and set its value to the optionally specified initialValue. |
setInt | Atomically set the value of the specified atomicInt to the specified value, providing the sequential consistency memory ordering guarantee. |
setInt64 | Atomically set the value of the specified atomicInt to the specified value, providing the sequential consistency memory ordering guarantee. |
setInt64Relaxed | Atomically set the value of the specified atomicInt to the specified value, without providing any memory ordering guarantees. |
setInt64Release | Atomically set the value of the specified atomicInt to the specified value, providing the release memory ordering guarantee. |
setIntRelaxed | Atomically set the value of the specified atomicInt to the specified value, without providing any memory ordering guarantees. |
setIntRelease | Atomically set the value of the specified atomicInt to the specified value, providing the release memory ordering guarantee. |
setPtr | Atomically set the value of the specified atomicPtr to the specified value, providing the sequential consistency memory ordering guarantee. |
setPtrRelaxed | Atomically set the value of the specified atomicPtr to the specified value, without providing any memory ordering guarantees. |
setPtrRelease | Atomically set the value of the specified atomicPtr to the specified value, providing the release memory ordering guarantee. |
setUint | Atomically set the value of the specified atomicUint to the specified value, providing the sequential consistency memory ordering guarantee. |
setUint64 | Atomically set the value of the specified atomicUint to the specified value, providing the sequential consistency memory ordering guarantee. |
setUint64Relaxed | Atomically set the value of the specified atomicUint to the specified value, without providing any memory ordering guarantees. |
setUint64Release | Atomically set the value of the specified atomicUint to the specified value, providing the release memory ordering guarantee. |
setUintRelaxed | Atomically set the value of the specified atomicUint to the specified value, without providing any memory ordering guarantees. |
setUintRelease | Atomically set the value of the specified atomicUint to the specified value, providing the release memory ordering guarantee. |
subtractInt64Nv | Atomically subtract from atomicInt and return the result. |
subtractInt64NvAcqRel | Atomically subtract from the specified atomicInt the specified value and return the resulting value, providing the acquire/release memory ordering guarantee. |
subtractInt64NvRelaxed | Atomically subtract from the specified atomicInt the specified value and return the resulting value, without providing any memory ordering guarantees. |
subtractIntNv | Atomically subtract from atomicInt and return the result. |
subtractIntNvAcqRel | Atomically subtract from the specified atomicInt the specified value and return the resulting value, providing the acquire/release memory ordering guarantee. |
subtractIntNvRelaxed | Atomically subtract from the specified atomicInt the specified value and return the resulting value, without providing any memory ordering guarantees. |
subtractUint64Nv | Atomically subtract value from atomicUint and return the result. |
subtractUint64NvAcqRel | Atomically subtract from atomicUint with acquire/release ordering. |
subtractUint64NvRelaxed | Atomically subtract from the specified atomicUint the specified value and return the resulting value, without providing any memory ordering guarantees. |
subtractUintNv | Atomically subtract from atomicUint and return the result. |
subtractUintNvAcqRel | Atomically subtract from the specified atomicUint the specified value and return the resulting value, providing the acquire/release memory ordering guarantee. |
subtractUintNvRelaxed | Atomically subtract from the specified atomicUint the specified value and return the resulting value, without providing any memory ordering guarantees. |
swapInt | Atomically swap atomicInt with sequential consistency. |
swapInt64 | Atomically swap atomicInt with sequential consistency. |
swapInt64AcqRel | Atomically swap atomicInt with acquire/release ordering. |
swapIntAcqRel | Atomically swap atomicInt with acquire/release ordering. |
swapPtr | Atomically swap atomicPtr with sequential consistency. |
swapPtrAcqRel | Atomically swap atomicPtr with acquire/release ordering. |
swapUint | Atomically swap atomicUint with sequential consistency. |
swapUint64 | Atomically swap atomicUint with sequential consistency. |
swapUint64AcqRel | Atomically swap atomicUint with acquire/release ordering. |
swapUintAcqRel | Atomically swap atomicUint with acquire/release ordering. |
testAndSwapInt | Conditionally swap atomicInt with sequential consistency. |
testAndSwapInt64 | Conditionally swap atomicInt with sequential consistency. |
testAndSwapInt64AcqRel | Conditionally swap atomicInt with acquire/release ordering. |
testAndSwapIntAcqRel | Conditionally swap atomicInt with acquire/release ordering. |
testAndSwapPtr | Conditionally swap atomicPtr with sequential consistency. |
testAndSwapPtrAcqRel | Conditionally swap atomicPtr with acquire/release ordering. |
testAndSwapUint | Conditionally swap atomicUint with sequential consistency. |
testAndSwapUint64 | Conditionally swap atomicUint with sequential consistency. |
testAndSwapUint64AcqRel | Conditionally swap atomicUint with acquire/release ordering. |
testAndSwapUintAcqRel | Conditionally swap atomicUint with acquire/release ordering. |