BloombergLP::bsls::AtomicOperations_ALL_ALL_ClangIntrinsics

Platform-specific atomic operations using clang __c11_atomic_* intrinsics.

Synopsis

Declared in <bsls_atomicoperations_all_all_clangintrinsics.h>

struct AtomicOperations_ALL_ALL_ClangIntrinsics
    : AtomicOperations_Default64<AtomicOperations_ALL_ALL_ClangIntrinsics>

Base Classes

NameDescription
AtomicOperations_Default64<AtomicOperations_ALL_ALL_ClangIntrinsics>This class provides default implementations of non-essential atomic operations for the 32-bit integer, 64-bit integer, the 32-bit unsigned integer, 64-bit unsigned integer and 64-bit pointer type for a generic 64-bit platform.

Type Aliases

NameDescription
AtomicInt_SizeCheck compile-time assert
AtomicTypes Alias for platform-specific atomic integer, pointer, and Int64 types.

Static Member Functions

NameDescription
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.
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.
getInt Return the current value of the specified atomicInt.
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 retrieve the value of the specified atomicInt, without providing any memory ordering guarantees.
initInt Initialize the specified atomicInt to the specified value.
initInt64 Initialize the specified atomicInt and set its value to the specified value.
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 Store the specified value into the specified atomicInt with relaxed memory ordering.
setIntRelease Atomically set the value of the specified atomicInt to the specified value, providing the release memory ordering guarantee.
swapInt Atomically set the value of the specified atomicInt to the specified swapValue, and return its previous value, providing the sequential consistency memory ordering guarantee.
swapInt64 Atomically set the value of the specified atomicInt to the specified swapValue, and return its previous value, providing the sequential consistency memory ordering guarantee.
swapInt64AcqRel Atomically set the value of the specified atomicInt to the specified swapValue, and return its previous value, providing the acquire/release memory ordering guarantee.
swapIntAcqRel Atomically set the value of the specified atomicInt to the specified swapValue, and return its previous value, providing the acquire/release memory ordering guarantee.
testAndSwapInt Conditionally set the value of the specified atomicInt to the specified swapValue if and only if the value of atomicInt equals the value of the specified compareValue, and return the initial value of atomicInt, providing the sequential consistency memory ordering guarantee. The whole operation is performed atomically.
testAndSwapInt64 Conditionally set the value of the specified atomicInt to the specified swapValue if and only if the value of atomicInt equals the value of the specified compareValue, and return the initial value of atomicInt, providing the sequential consistency memory ordering guarantee. The whole operation is performed atomically.
testAndSwapInt64AcqRel Conditionally set the value of the specified atomicInt to the specified swapValue if and only if the value of atomicInt equals the value of the specified compareValue, and return the initial value of atomicInt, providing the acquire/release memory ordering guarantee. The whole operation is performed atomically.
testAndSwapIntAcqRel Conditionally set the value of the specified atomicInt to the specified swapValue if and only if the value of atomicInt equals the value of the specified compareValue, and return the initial value of atomicInt, providing the acquire/release memory ordering guarantee. The whole operation is performed atomically.