]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add atomic_store_relaxed and atomic_load_relaxed macros to isc/atomic.h, fix issues...
authorWitold Kręcicki <wpk@isc.org>
Mon, 21 Jan 2019 08:32:36 +0000 (09:32 +0100)
committerWitold Krecicki <wpk@isc.org>
Fri, 25 Jan 2019 09:26:49 +0000 (04:26 -0500)
lib/isc/include/isc/atomic.h
lib/isc/include/isc/stdatomic.h

index d6f95de111c786f728b435ca11148e9876a78ace..893f5526fd09891ed48f0d51e90c1d6c43ed41cc 100644 (file)
 #else
 #include <isc/stdatomic.h>
 #endif
+
+/*
+ * We define a few additional macros to make things easier
+ */
+
+#define atomic_store_relaxed(o, v) atomic_store_explicit((o), \
+                                                        (v), \
+                                                        memory_order_relaxed)
+#define atomic_load_relaxed(o) atomic_load_explicit((o), memory_order_relaxed)
index 723ed1e5a82c599a53211d95c7e1069cf11345b2..e85027855e328b88ab1f3b8a263e0ccec3b9ead4 100644 (file)
@@ -11,6 +11,8 @@
 
 #pragma once
 
+#include <inttypes.h>
+
 #if !defined(__has_feature)
 #define __has_feature(x) 0
 #endif
@@ -134,11 +136,11 @@ typedef uint_fast64_t     atomic_uint_fast64_t;
 
 #define atomic_load(obj) \
        atomic_load_explicit(obj, memory_order_seq_cst)
-#define atomic_store(obj) \
-       atomic_store_explicit(obj, memory_order_seq_cst)
-#define atomic_fetch_add(obj) \
+#define atomic_store(obj, arg) \
+       atomic_store_explicit(obj, arg, memory_order_seq_cst)
+#define atomic_fetch_add(obj, arg) \
        atomic_fetch_add_explicit(obj, arg, memory_order_seq_cst)
-#define atomic_fetch_sub(obj) \
+#define atomic_fetch_sub(obj, arg) \
        atomic_fetch_sub_explicit(obj, arg, memory_order_seq_cst)
 #define atomic_compare_exchange_strong(obj, expected, desired) \
        atomic_compare_exchange_strong_explicit(obj, expected, desired, memory_order_seq_cst, memory_order_seq_cst)