aboutsummaryrefslogtreecommitdiff
path: root/src/types.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-03-31 00:49:53 +0100
committergingerBill <bill@gingerbill.org>2022-03-31 00:49:53 +0100
commit6bc0c611abf9426815207d06c8f1d922533b278b (patch)
treefdb1308431dda1605497f3eb5bc275a247c913e7 /src/types.cpp
parentba1930eb01455f3f8f84a24b8438171555611b95 (diff)
Enforce success failure pairings of `compare_exchange_*_explicit` at compile time
Diffstat (limited to 'src/types.cpp')
-rw-r--r--src/types.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/types.cpp b/src/types.cpp
index 25e29820c..16d07d392 100644
--- a/src/types.cpp
+++ b/src/types.cpp
@@ -693,8 +693,8 @@ gb_global Type *t_objc_SEL = nullptr;
gb_global Type *t_objc_Class = nullptr;
enum OdinAtomicMemoryOrder : i32 {
- OdinAtomicMemoryOrder_relaxed = 0,
- OdinAtomicMemoryOrder_consume = 1,
+ OdinAtomicMemoryOrder_relaxed = 0, // unordered
+ OdinAtomicMemoryOrder_consume = 1, // monotonic
OdinAtomicMemoryOrder_acquire = 2,
OdinAtomicMemoryOrder_release = 3,
OdinAtomicMemoryOrder_acq_rel = 4,
@@ -702,6 +702,15 @@ enum OdinAtomicMemoryOrder : i32 {
OdinAtomicMemoryOrder_COUNT,
};
+char const *OdinAtomicMemoryOrder_strings[OdinAtomicMemoryOrder_COUNT] = {
+ "relaxed",
+ "consume",
+ "acquire",
+ "release",
+ "acq_rel",
+ "seq_cst",
+};
+
gb_global Type *t_atomic_memory_order = nullptr;