3 #ifndef __CDS_COMPILER_ICL_COMPILER_BARRIERS_H
4 #define __CDS_COMPILER_ICL_COMPILER_BARRIERS_H
6 #if defined(_MSC_VER) && _MSC_VER < 1700
10 # pragma intrinsic(_ReadWriteBarrier)
11 # pragma intrinsic(_ReadBarrier)
12 # pragma intrinsic(_WriteBarrier)
14 # define CDS_COMPILER_RW_BARRIER _ReadWriteBarrier()
15 # define CDS_COMPILER_R_BARRIER _ReadBarrier()
16 # define CDS_COMPILER_W_BARRIER _WriteBarrier()
22 # define CDS_COMPILER_RW_BARRIER std::atomic_thread_fence( std::memory_order_acq_rel )
23 # define CDS_COMPILER_R_BARRIER CDS_COMPILER_RW_BARRIER
24 # define CDS_COMPILER_W_BARRIER CDS_COMPILER_RW_BARRIER
27 #endif // #ifndef __CDS_COMPILER_ICL_COMPILER_BARRIERS_H