summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/my_atomic.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/include/my_atomic.h b/include/my_atomic.h
index 23c3dc749ab..751afcb77db 100644
--- a/include/my_atomic.h
+++ b/include/my_atomic.h
@@ -68,10 +68,12 @@
#include "atomic/nolock.h"
#endif
-#ifndef make_atomic_cas_body
+#ifndef MY_ATOMIC_NOLOCK
/* nolock.h was not able to generate even a CAS function, fall back */
#include "atomic/rwlock.h"
-#else
+#endif
+
+#ifndef MY_ATOMICS_MADE
/* define missing functions by using the already generated ones */
#ifndef make_atomic_add_body
#define make_atomic_add_body(S) \
@@ -94,7 +96,6 @@
#define make_atomic_store_body(S) \
(void)(my_atomic_fas ## S (a, v));
#endif
-#endif
/*
transparent_union doesn't work in g++
@@ -286,6 +287,7 @@ make_atomic_store(ptr)
#undef make_atomic_load_body
#undef make_atomic_store_body
#undef make_atomic_fas_body
+#endif
#undef intptr
/*