11 #ifndef ASIO_DETAIL_WIN_FENCED_BLOCK_HPP 12 #define ASIO_DETAIL_WIN_FENCED_BLOCK_HPP 14 #if defined(_MSC_VER) && (_MSC_VER >= 1200) 16 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) 20 #if defined(ASIO_WINDOWS) && !defined(UNDER_CE) 29 class win_fenced_block
37 explicit win_fenced_block(half_t)
42 explicit win_fenced_block(full_t)
44 #if defined(__BORLANDC__) 46 ::InterlockedExchange(&barrier, 1);
47 #elif defined(ASIO_MSVC) \ 48 && ((ASIO_MSVC < 1400) || !defined(MemoryBarrier)) 50 # pragma warning(push) 51 # pragma warning(disable:4793) 53 __asm { xchg barrier, eax }
55 # endif // defined(_M_IX86) 64 #if defined(__BORLANDC__) 66 ::InterlockedExchange(&barrier, 1);
67 #elif defined(ASIO_MSVC) \ 68 && ((ASIO_MSVC < 1400) || !defined(MemoryBarrier)) 70 # pragma warning(push) 71 # pragma warning(disable:4793) 73 __asm { xchg barrier, eax }
75 # endif // defined(_M_IX86) 87 #endif // defined(ASIO_WINDOWS) && !defined(UNDER_CE) 89 #endif // ASIO_DETAIL_WIN_FENCED_BLOCK_HPP