diff options
Diffstat (limited to 'port/atomic_pointer.h')
-rw-r--r-- | port/atomic_pointer.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/port/atomic_pointer.h b/port/atomic_pointer.h index 54f0885..43dab2a 100644 --- a/port/atomic_pointer.h +++ b/port/atomic_pointer.h @@ -21,13 +21,12 @@ #include <stdint.h> #ifdef LEVELDB_ATOMIC_PRESENT #include <atomic> +#elif defined(__APPLE__) +#include <libkern/OSAtomic.h> #endif #ifdef OS_WIN #include <windows.h> #endif -#ifdef __APPLE__ -#include <libkern/OSAtomic.h> -#endif #if defined(_M_X64) || defined(__x86_64__) #define ARCH_CPU_X86_FAMILY 1 @@ -56,7 +55,11 @@ namespace port { // Mac OS #elif defined(__APPLE__) inline void MemoryBarrier() { +#if defined(LEVELDB_ATOMIC_PRESENT) + std::atomic_thread_fence(std::memory_order_seq_cst); +#else OSMemoryBarrier(); +#endif // defined(LEVELDB_ATOMIC_PRESENT) } #define LEVELDB_HAVE_MEMORY_BARRIER |