diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-11-24 20:33:19 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-11-24 20:35:17 (GMT) |
commit | 332d60c56dfaa11fdd135088279d15cd5983b3d4 (patch) | |
tree | dd77717a4e1732da929d5ff8a0471fa3f005e201 /3rdParty/Boost/src/boost/asio/detail/win_fenced_block.hpp | |
parent | 90c44a10fec26d2a0935b2d62e82b6a5be028373 (diff) | |
download | swift-contrib-332d60c56dfaa11fdd135088279d15cd5983b3d4.zip swift-contrib-332d60c56dfaa11fdd135088279d15cd5983b3d4.tar.bz2 |
Upgraded Boost to 1.45.0.
Diffstat (limited to '3rdParty/Boost/src/boost/asio/detail/win_fenced_block.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/asio/detail/win_fenced_block.hpp | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/3rdParty/Boost/src/boost/asio/detail/win_fenced_block.hpp b/3rdParty/Boost/src/boost/asio/detail/win_fenced_block.hpp index ff4a21c..928395e 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_fenced_block.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_fenced_block.hpp @@ -1,6 +1,6 @@ // -// win_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~ +// detail/win_fenced_block.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) // @@ -15,16 +15,14 @@ # pragma once #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) -#include <boost/asio/detail/push_options.hpp> - -#include <boost/asio/detail/push_options.hpp> -#include <boost/config.hpp> -#include <boost/asio/detail/pop_options.hpp> +#include <boost/asio/detail/config.hpp> #if defined(BOOST_WINDOWS) && !defined(UNDER_CE) #include <boost/asio/detail/socket_types.hpp> +#include <boost/asio/detail/push_options.hpp> + namespace boost { namespace asio { namespace detail { @@ -36,7 +34,10 @@ public: // Constructor. win_fenced_block() { -#if defined(BOOST_MSVC) && (BOOST_MSVC < 1400) +#if defined(__BORLANDC__) + LONG barrier = 0; + ::InterlockedExchange(&barrier, 1); +#elif defined(BOOST_MSVC) && ((BOOST_MSVC < 1400) || !defined(MemoryBarrier)) # if defined(_M_IX86) # pragma warning(push) # pragma warning(disable:4793) @@ -44,15 +45,18 @@ public: __asm { xchg barrier, eax } # pragma warning(pop) # endif // defined(_M_IX86) -#else // defined(BOOST_MSVC) && (BOOST_MSVC < 1400) +#else MemoryBarrier(); -#endif // defined(BOOST_MSVC) && (BOOST_MSVC < 1400) +#endif } // Destructor. ~win_fenced_block() { -#if defined(BOOST_MSVC) && (BOOST_MSVC < 1400) +#if defined(__BORLANDC__) + LONG barrier = 0; + ::InterlockedExchange(&barrier, 1); +#elif defined(BOOST_MSVC) && ((BOOST_MSVC < 1400) || !defined(MemoryBarrier)) # if defined(_M_IX86) # pragma warning(push) # pragma warning(disable:4793) @@ -60,9 +64,9 @@ public: __asm { xchg barrier, eax } # pragma warning(pop) # endif // defined(_M_IX86) -#else // defined(BOOST_MSVC) && (BOOST_MSVC < 1400) +#else MemoryBarrier(); -#endif // defined(BOOST_MSVC) && (BOOST_MSVC < 1400) +#endif } }; @@ -70,8 +74,8 @@ public: } // namespace asio } // namespace boost -#endif // defined(BOOST_WINDOWS) && !defined(UNDER_CE) - #include <boost/asio/detail/pop_options.hpp> +#endif // defined(BOOST_WINDOWS) && !defined(UNDER_CE) + #endif // BOOST_ASIO_DETAIL_WIN_FENCED_BLOCK_HPP |