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

Name

Description

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

Name

Description

AtomicInt_SizeCheck

compile‐time assert

AtomicTypes

Alias for platform‐specific atomic integer, pointer, and Int64 types.

Static Member Functions

Name

Description

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.

Created with MrDocs