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