4#include "../Foundation/PrimitiveTypes.h"
9typedef enum memory_order
19typedef enum memory_order
21 memory_order_relaxed = __ATOMIC_RELAXED,
22 memory_order_consume = __ATOMIC_CONSUME,
23 memory_order_acquire = __ATOMIC_ACQUIRE,
24 memory_order_release = __ATOMIC_RELEASE,
25 memory_order_acq_rel = __ATOMIC_ACQ_REL,
26 memory_order_seq_cst = __ATOMIC_SEQ_CST
48 int32_t fetch_add(
int32_t val, memory_order mem = memory_order_seq_cst);
49 int32_t fetch_sub(
int32_t val, memory_order mem = memory_order_seq_cst);
50 int32_t load(memory_order mem = memory_order_seq_cst)
const;
51 void store(
int32_t desired, memory_order mem = memory_order_seq_cst);
52 int32_t exchange(
int32_t desired, memory_order mem = memory_order_seq_cst);
54 bool compare_exchange_weak(
int32_t& expected,
int32_t desired, memory_order success, memory_order failure);
55 bool compare_exchange_strong(
int32_t& expected,
int32_t desired, memory_order success, memory_order failure);
56 bool compare_exchange_weak(
int32_t& expected,
int32_t desired, memory_order mem = memory_order_seq_cst);
57 bool compare_exchange_strong(
int32_t& expected,
int32_t desired, memory_order mem = memory_order_seq_cst);
74 Atomic(
bool value =
false);
76 bool exchange(
bool desired, memory_order mem = memory_order_seq_cst);
77 void store(
bool desired, memory_order mem = memory_order_seq_cst);
78 bool load(memory_order mem = memory_order_seq_cst)
const;
80 bool compare_exchange_weak(
bool& expected,
bool desired, memory_order success, memory_order failure);
81 bool compare_exchange_strong(
bool& expected,
bool desired, memory_order success, memory_order failure);
82 bool compare_exchange_weak(
bool& expected,
bool desired, memory_order mem = memory_order_seq_cst);
83 bool compare_exchange_strong(
bool& expected,
bool desired, memory_order mem = memory_order_seq_cst);
86 operator bool()
const;
87 bool operator=(
bool desired);
int int32_t
Platform independent (4) bytes signed int.
Definition PrimitiveTypes.h:46
Atomic variables (only for int and bool for now).
Definition Atomic.h:41