#include <boost/memory_order.hpp>
#include <boost/atomic/capabilities.hpp>
-#include <boost/atomic/detail/operations.hpp>
+#include <boost/atomic/detail/fence_operations.hpp>
+#include <boost/atomic/detail/header.hpp>
#ifdef BOOST_HAS_PRAGMA_ONCE
#pragma once
/*
* IMPLEMENTATION NOTE: All interface functions MUST be declared with BOOST_FORCEINLINE,
- * see comment for convert_memory_order_to_gcc in ops_gcc_atomic.hpp.
+ * see comment for convert_memory_order_to_gcc in gcc_atomic_memory_order_utils.hpp.
*/
namespace boost {
namespace atomics {
-#if BOOST_ATOMIC_THREAD_FENCE > 0
BOOST_FORCEINLINE void atomic_thread_fence(memory_order order) BOOST_NOEXCEPT
{
- atomics::detail::thread_fence(order);
+ atomics::detail::fence_operations::thread_fence(order);
}
-#else
-BOOST_FORCEINLINE void atomic_thread_fence(memory_order) BOOST_NOEXCEPT
-{
- atomics::detail::lock_pool::thread_fence();
-}
-#endif
-#if BOOST_ATOMIC_SIGNAL_FENCE > 0
BOOST_FORCEINLINE void atomic_signal_fence(memory_order order) BOOST_NOEXCEPT
{
- atomics::detail::signal_fence(order);
+ atomics::detail::fence_operations::signal_fence(order);
}
-#else
-BOOST_FORCEINLINE void atomic_signal_fence(memory_order) BOOST_NOEXCEPT
-{
- atomics::detail::lock_pool::signal_fence();
-}
-#endif
} // namespace atomics
} // namespace boost
+#include <boost/atomic/detail/footer.hpp>
+
#endif // BOOST_ATOMIC_FENCES_HPP_INCLUDED_