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>Default atomic operations 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 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.
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.