diff options
Diffstat (limited to 'include/atomic/nolock.h')
-rw-r--r-- | include/atomic/nolock.h | 21 |
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) |