summaryrefslogtreecommitdiff
path: root/include/atomic/nolock.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/atomic/nolock.h')
-rw-r--r--include/atomic/nolock.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/include/atomic/nolock.h b/include/atomic/nolock.h
index 10ac17884b6..0e6c8089b84 100644
--- a/include/atomic/nolock.h
+++ b/include/atomic/nolock.h
@@ -28,11 +28,28 @@
#elif defined(_MSC_VER)
#include "x86-msvc.h"
#endif
-#endif
-#ifdef make_atomic_cas_body
+#elif defined(HAVE_SOLARIS_ATOMIC)
+
+#include "solaris.h"
+
+#endif /* __i386__ || _M_IX86 || HAVE_GCC_ATOMIC_BUILTINS */
+
+#if defined(make_atomic_cas_body) || defined(MY_ATOMICS_MADE)
+/*
+ * We have atomics that require no locking
+ */
+#define MY_ATOMIC_NOLOCK
+#ifdef __SUNPRO_C
+/*
+ * Sun Studio 12 (and likely earlier) does not accept a typedef struct {}
+ */
+typedef char my_atomic_rwlock_t;
+#else
typedef struct { } my_atomic_rwlock_t;
+#endif
+
#define my_atomic_rwlock_destroy(name)
#define my_atomic_rwlock_init(name)
#define my_atomic_rwlock_rdlock(name)