BloombergLP::bsls::AtomicOperations_DefaultPointer32::testAndSwapPtr

Conditionally swap atomicPtr if it equals compareValue.

Synopsis

Declared in <bsls_atomicoperations_default.h>

static
void*
testAndSwapPtr(
    AtomicTypes::Pointer* atomicPtr,
    void* compareValue,
    void* swapValue);

Description

Conditionally set the value of the specified atomicPtr to the specified swapValue if and only if the value of atomicPtr equals the value of the specified compareValue, and return the initial value of atomicPtr, providing the sequential consistency memory ordering guarantee. The whole operation is performed atomically.

Return Value

initial value of atomicPtr before the operation

Parameters

NameDescription
atomicPtratomic pointer to test and possibly update
compareValueexpected current value of atomicPtr
swapValuevalue to store if the comparison succeeds