summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Munch-Maccagnoni <Guillaume.Munch-Maccagnoni@inria.fr>2023-04-18 15:53:53 +0200
committerGuillaume Munch-Maccagnoni <Guillaume.Munch-Maccagnoni@inria.fr>2023-04-18 17:41:17 +0200
commit4d5d29b6f6a005eed05a8b1d7c1fb8c710a760b8 (patch)
treec51e6d5e6a3d3d99b3fc4c4cd954a63efe6e4401
parent250c12c478fb69af40e3c5f0662356271754a89b (diff)
downloadocaml-4d5d29b6f6a005eed05a8b1d7c1fb8c710a760b8.tar.gz
Make atomic_* helpers polymorphic
-rw-r--r--runtime/caml/platform.h31
1 files changed, 10 insertions, 21 deletions
diff --git a/runtime/caml/platform.h b/runtime/caml/platform.h
index 77027405be..4d8431b3d9 100644
--- a/runtime/caml/platform.h
+++ b/runtime/caml/platform.h
@@ -49,27 +49,16 @@ Caml_inline void cpu_relax(void) {
#endif
}
-/* Loads and stores with acquire and release semantics respectively */
-
-Caml_inline uintnat atomic_load_acq(atomic_uintnat* p)
-{
- return atomic_load_explicit(p, memory_order_acquire);
-}
-
-Caml_inline uintnat atomic_load_relaxed(atomic_uintnat* p)
-{
- return atomic_load_explicit(p, memory_order_relaxed);
-}
-
-Caml_inline void atomic_store_rel(atomic_uintnat* p, uintnat v)
-{
- atomic_store_explicit(p, v, memory_order_release);
-}
-
-Caml_inline void atomic_store_relaxed(atomic_uintnat* p, uintnat v)
-{
- atomic_store_explicit(p, v, memory_order_relaxed);
-}
+/* Loads and stores with acquire, release and relaxed semantics */
+
+#define atomic_load_acq(p) \
+ atomic_load_explicit((p), memory_order_acquire)
+#define atomic_load_relaxed(p) \
+ atomic_load_explicit((p), memory_order_relaxed)
+#define atomic_store_rel(p, v) \
+ atomic_store_explicit((p), (v), memory_order_release)
+#define atomic_store_relaxed(p, v) \
+ atomic_store_explicit((p), (v), memory_order_relaxed)
/* Spin-wait loops */