Conditionally swap atomicPtr with acquire/release ordering.
Declared in <bsls_atomicoperations_default.h>
static
void*
testAndSwapPtrAcqRel(
AtomicTypes::Pointer* atomicPtr,
void* compareValue,
void* swapValue);
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 acquire/release memory ordering guarantee. The whole operation is performed atomically.
initial value of atomicPtr before the operation
| Name | Description |
|---|---|
| atomicPtr | atomic pointer to test and possibly update |
| compareValue | expected current value of atomicPtr |
| swapValue | value to store if the comparison succeeds |