4#include "../Foundation/PrimitiveTypes.h"
5#include "../Threading/Threading.h"
10typedef enum memory_order
20typedef enum memory_order
22 memory_order_relaxed = __ATOMIC_RELAXED,
23 memory_order_consume = __ATOMIC_CONSUME,
24 memory_order_acquire = __ATOMIC_ACQUIRE,
25 memory_order_release = __ATOMIC_RELEASE,
26 memory_order_acq_rel = __ATOMIC_ACQ_REL,
27 memory_order_seq_cst = __ATOMIC_SEQ_CST
49 int32_t fetch_add(
int32_t val, memory_order mem = memory_order_seq_cst);
50 int32_t fetch_sub(
int32_t val, memory_order mem = memory_order_seq_cst);
51 int32_t load(memory_order mem = memory_order_seq_cst)
const;
52 void store(
int32_t desired, memory_order mem = memory_order_seq_cst);
53 int32_t exchange(
int32_t desired, memory_order mem = memory_order_seq_cst);
55 bool compare_exchange_weak(
int32_t& expected,
int32_t desired, memory_order success, memory_order failure);
56 bool compare_exchange_strong(
int32_t& expected,
int32_t desired, memory_order success, memory_order failure);
57 bool compare_exchange_weak(
int32_t& expected,
int32_t desired, memory_order mem = memory_order_seq_cst);
58 bool compare_exchange_strong(
int32_t& expected,
int32_t desired, memory_order mem = memory_order_seq_cst);
73struct SC_THREADING_EXPORT
Atomic<bool>
75 Atomic(
bool value =
false);
77 bool exchange(
bool desired, memory_order mem = memory_order_seq_cst);
78 void store(
bool desired, memory_order mem = memory_order_seq_cst);
79 bool load(memory_order mem = memory_order_seq_cst)
const;
81 bool compare_exchange_weak(
bool& expected,
bool desired, memory_order success, memory_order failure);
82 bool compare_exchange_strong(
bool& expected,
bool desired, memory_order success, memory_order failure);
83 bool compare_exchange_weak(
bool& expected,
bool desired, memory_order mem = memory_order_seq_cst);
84 bool compare_exchange_strong(
bool& expected,
bool desired, memory_order mem = memory_order_seq_cst);
87 operator bool()
const;
88 bool operator=(
bool desired);
int int32_t
Platform independent (4) bytes signed int.
Definition PrimitiveTypes.h:37
Atomic variables (only for int and bool for now).
Definition Atomic.h:42