#include "vl_atomic.h"
#include "vl_memory.h"
Go to the source code of this file.
◆ VL_ATOMIC_PTR_ALIGN
Atomic pointers must be aligned by their size when dynamically allocated.
◆ vlAtomicPtrCompareExchangeStrong
| #define vlAtomicPtrCompareExchangeStrong |
( |
|
atPtr, |
|
|
|
atPtrExpected, |
|
|
|
valPtr |
|
) |
| |
Value:
@ VL_MEMORY_ORDER_SEQ_CST
Definition vl_atomic.h:167
Convenience macro for strong atomic tagged pointer CAS with sequential consistency.
- Parameters
-
| atPtr | Pointer to atomic tagged pointer. |
| atPtrExpected | Expected pointer/tag (updated on failure). |
| valPtr | New pointer value. |
- Returns
VL_TRUE if successful, VL_FALSE otherwise.
- See also
- vlAtomicPtrCompareExchangeStrongExplicit
◆ vlAtomicPtrCompareExchangeWeak
| #define vlAtomicPtrCompareExchangeWeak |
( |
|
atPtr, |
|
|
|
atPtrExpected, |
|
|
|
valPtr |
|
) |
| |
Value:
Convenience macro for weak atomic tagged pointer CAS with sequential consistency.
- Parameters
-
| atPtr | Pointer to atomic tagged pointer. |
| atPtrExpected | Expected pointer/tag (updated on failure). |
| valPtr | New pointer value. |
- Returns
VL_TRUE if successful, VL_FALSE otherwise.
- See also
- vlAtomicPtrCompareExchangeWeakExplicit
◆ vl_atomic_ptr
Atomic variant of vl_tagged_ptr.
◆ vl_tagged_ptr
◆ VL_TAGPTR_NULL
Default initialization value for tagged/atomic pointers.