diff --git a/src/core.c b/src/core.c index a47a9c08..3e7ebd23 100644 --- a/src/core.c +++ b/src/core.c @@ -934,14 +934,7 @@ static __always_inline bool atomic_cas64(MDBX_atomic_uint64_t *p, uint64_t c, uint64_t v) { #ifdef MDBX_HAVE_C11ATOMICS STATIC_ASSERT(sizeof(long long) >= sizeof(uint64_t)); -#ifdef ATOMIC_LLONG_LOCK_FREE - STATIC_ASSERT(ATOMIC_LLONG_LOCK_FREE > 0); -#if ATOMIC_LLONG_LOCK_FREE < 2 assert(atomic_is_lock_free(MDBX_c11a_rw(uint64_t, p))); -#endif /* ATOMIC_LLONG_LOCK_FREE < 2 */ -#else /* defined(ATOMIC_LLONG_LOCK_FREE) */ - assert(atomic_is_lock_free(MDBX_c11a_rw(uint64_t, p))); -#endif return atomic_compare_exchange_strong(MDBX_c11a_rw(uint64_t, p), &c, v); #elif defined(__GNUC__) || defined(__clang__) return __sync_bool_compare_and_swap(&p->weak, c, v); @@ -960,14 +953,7 @@ static __always_inline bool atomic_cas32(MDBX_atomic_uint32_t *p, uint32_t c, uint32_t v) { #ifdef MDBX_HAVE_C11ATOMICS STATIC_ASSERT(sizeof(int) >= sizeof(uint32_t)); -#ifdef ATOMIC_INT_LOCK_FREE - STATIC_ASSERT(ATOMIC_INT_LOCK_FREE > 0); -#if ATOMIC_INT_LOCK_FREE < 2 assert(atomic_is_lock_free(MDBX_c11a_rw(uint32_t, p))); -#endif -#else - assert(atomic_is_lock_free(MDBX_c11a_rw(uint32_t, p))); -#endif return atomic_compare_exchange_strong(MDBX_c11a_rw(uint32_t, p), &c, v); #elif defined(__GNUC__) || defined(__clang__) return __sync_bool_compare_and_swap(&p->weak, c, v); @@ -986,14 +972,7 @@ static __always_inline uint32_t atomic_add32(MDBX_atomic_uint32_t *p, uint32_t v) { #ifdef MDBX_HAVE_C11ATOMICS STATIC_ASSERT(sizeof(int) >= sizeof(uint32_t)); -#ifdef ATOMIC_INT_LOCK_FREE - STATIC_ASSERT(ATOMIC_INT_LOCK_FREE > 0); -#if ATOMIC_INT_LOCK_FREE < 2 assert(atomic_is_lock_free(MDBX_c11a_rw(uint32_t, p))); -#endif -#else - assert(atomic_is_lock_free(MDBX_c11a_rw(uint32_t, p))); -#endif return atomic_fetch_add(MDBX_c11a_rw(uint32_t, p), v); #elif defined(__GNUC__) || defined(__clang__) return __sync_fetch_and_add(&p->weak, v); diff --git a/src/options.h b/src/options.h index 762bd2eb..127a13be 100644 --- a/src/options.h +++ b/src/options.h @@ -358,13 +358,7 @@ #endif /* MDBX_64BIT_ATOMIC */ #ifndef MDBX_64BIT_CAS -#if defined(ATOMIC_LLONG_LOCK_FREE) -#if ATOMIC_LLONG_LOCK_FREE > 1 -#define MDBX_64BIT_CAS 1 -#else -#define MDBX_64BIT_CAS 0 -#endif -#elif defined(__GCC_ATOMIC_LLONG_LOCK_FREE) +#if defined(__GCC_ATOMIC_LLONG_LOCK_FREE) #if __GCC_ATOMIC_LLONG_LOCK_FREE > 1 #define MDBX_64BIT_CAS 1 #else @@ -376,6 +370,12 @@ #else #define MDBX_64BIT_CAS 0 #endif +#elif defined(ATOMIC_LLONG_LOCK_FREE) +#if ATOMIC_LLONG_LOCK_FREE > 1 +#define MDBX_64BIT_CAS 1 +#else +#define MDBX_64BIT_CAS 0 +#endif #elif defined(_MSC_VER) || defined(__APPLE__) || defined(DOXYGEN) #define MDBX_64BIT_CAS 1 #else