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 #ifdef LEVELDB_ATOMIC_PRESENT #include +#elif defined(__APPLE__) +#include #endif #ifdef OS_WIN #include #endif -#ifdef __APPLE__ -#include -#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