|
Boost-Commit : |
From: matt_calabrese_at_[hidden]
Date: 2007-06-29 03:28:25
Author: matt_calabrese
Date: 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
New Revision: 7312
URL: http://svn.boost.org/trac/boost/changeset/7312
Log:
Default binary assign implementations now internally use interlocked::modify.
Added:
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acq_rel.hpp
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acq_rel_fwd.hpp
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_unordered.hpp
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_unordered_fwd.hpp
Text files modified:
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/detail/binary_default_dont_include.hpp | 57 ++++++++++++++++++++++++++-------------
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify.hpp | 2 +
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify.hpp | 34 ++++++++++++-----------
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acquire.hpp | 18 ++++++++----
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acquire_fwd.hpp | 12 ++++++--
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_fwd.hpp | 14 +++++++++
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_release.hpp | 19 +++++++++----
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_release_fwd.hpp | 12 ++++++--
sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify_fwd.hpp | 2 +
9 files changed, 117 insertions(+), 53 deletions(-)
Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/detail/binary_default_dont_include.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/detail/binary_default_dont_include.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/detail/binary_default_dont_include.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -37,12 +37,39 @@
// ToDo: Change to only include appropriate versions of assign_if_was
#include <boost/act/interlocked/assign_if_was.hpp>
-#include <boost/act/interlocked/load.hpp>
+#include <boost/act/interlocked/modify.hpp>
#include <boost/type_traits/remove_cv.hpp>
namespace boost { namespace act { namespace interlocked { namespace detail {
+template< typename OperandType >
+class BOOST_PP_CAT
+ (
+ BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_FULL_NAME
+ , _default_impl_fun_object
+ )
+{
+public:
+ explicit BOOST_PP_CAT
+ (
+ BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_FULL_NAME
+ , _default_impl_fun_object
+ )
+ ( OperandType operand_init )
+ : operand_m( operand_init ) {}
+public:
+ template< typename TargetType >
+ typename remove_cv< TargetType >::type
+ operator ()( TargetType const& target ) const
+ {
+ return static_cast< typename remove_cv< TargetType >::type >
+ ( target BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_OP operand_m );
+ }
+private:
+ OperandType operand_m;
+};
+
// ToDo: Change to minimize memory barriers (don't always use full barrier form)
struct BOOST_PP_CAT
(
@@ -52,26 +79,18 @@
{
template< typename TargetType, typename OperandType >
static typename remove_cv< TargetType >::type
- execute( TargetType& target, OperandType operand )
+ execute( TargetType& target, OperandType const& operand )
{
- typedef typename remove_cv< TargetType >::type unqualified_type;
- unqualified_type new_value;
-
- for( unqualified_type curr_value = interlocked::load( target )
- ; ( new_value = interlocked::assign_if_was
- ( target
- , curr_value
- BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_OP
- operand
- , curr_value
- )
- )
- != curr_value
- ; curr_value = new_value
- );
+ typedef typename remove_cv< OperandType >::type stored_operand_type;
- // Note: new_value is the old value here
- return new_value;
+ return modify< BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_SEMANTICS >
+ ( target, BOOST_PP_CAT
+ (
+ BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_FULL_NAME
+ , _default_impl_fun_object
+ )
+ < stored_operand_type >( operand )
+ );
}
};
Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -12,5 +12,7 @@
#include <boost/act/interlocked/modify/modify.hpp>
#include <boost/act/interlocked/modify/modify_acquire.hpp>
#include <boost/act/interlocked/modify/modify_release.hpp>
+#include <boost/act/interlocked/modify/modify_acq_rel.hpp>
+#include <boost/act/interlocked/modify/modify_unordered.hpp>
#endif
Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -9,10 +9,13 @@
#ifndef BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_HPP
#define BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_HPP
-#include <boost/act/interlocked/assign_if_was/assign_if_was.hpp>
#include <boost/act/interlocked/detail/cas_support.hpp>
#include <boost/type_traits/remove_cv.hpp>
#include <boost/utility/enable_if.hpp>
+#include <boost/act/interlocked/semantics/default.hpp>
+#include <boost/act/interlocked/semantics/acq_rel.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/type_traits/is_same.hpp>
namespace boost { namespace act { namespace interlocked {
@@ -25,22 +28,21 @@
::type
modify( TargetType& destination, OperationType operation )
{
- typedef typename remove_cv< TargetType >::type unqualified_type;
- unqualified_type new_value;
-
- for( unqualified_type curr_value = interlocked::load( target )
- ; ( new_value = interlocked::assign_if_was
- ( target
- , operation( curr_value )
- , curr_value
- )
- )
- != curr_value
- ; curr_value = new_value
- );
+ return modify< acq_rel >( destination, operation );
+}
- // Note: new_value is the old value here
- return new_value;
+template< typename Semantics, typename TargetType, typename OperationType >
+typename lazy_enable_if
+<
+ mpl::and_< is_same< Semantics, default_ >
+ , detail::are_valid_store_style_params< TargetType >
+ >
+, remove_cv< TargetType >
+>
+::type
+modify( TargetType& destination, OperationType operation )
+{
+ return modify< acq_rel >( destination, operation );
}
} } }
Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acq_rel.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acq_rel.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -0,0 +1,55 @@
+/*=============================================================================
+ Copyright (c) 2006, 2007 Matthew Calabrese
+
+ Use, modification and distribution is subject to the Boost Software
+ License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_ACQ_REL_HPP
+#define BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_ACQ_REL_HPP
+
+#include <boost/act/interlocked/assign_if_was/assign_if_was_acq_rel.hpp>
+#include <boost/act/interlocked/detail/cas_support.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/act/interlocked/semantics/acquire.hpp>
+#include <boost/act/interlocked/semantics/acq_rel.hpp>
+#include <boost/act/interlocked/load/load_acquire.hpp>
+
+namespace boost { namespace act { namespace interlocked {
+
+template< typename Semantics, typename TargetType, typename OperationType >
+typename lazy_enable_if
+<
+ mpl::and_< is_same< Semantics, acq_rel >
+ , detail::are_valid_store_style_params< TargetType >
+ >
+, remove_cv< TargetType >
+>
+::type
+modify( TargetType& destination, OperationType operation )
+{
+ typedef typename remove_cv< TargetType >::type unqualified_type;
+ unqualified_type new_value;
+
+ for( unqualified_type curr_value = interlocked::load< acquire >( destination )
+ ; ( new_value = interlocked::assign_if_was< acq_rel >
+ ( destination
+ , operation( curr_value )
+ , curr_value
+ )
+ )
+ != curr_value
+ ; curr_value = new_value
+ );
+
+ // Note: new_value is the old value here
+ return new_value;
+}
+
+} } }
+
+#endif
Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acq_rel_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acq_rel_fwd.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -0,0 +1,35 @@
+/*=============================================================================
+ Copyright (c) 2006, 2007 Matthew Calabrese
+
+ Use, modification and distribution is subject to the Boost Software
+ License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_ACQ_REL_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_ACQ_REL_FWD_HPP
+
+#include <boost/act/interlocked/assign_if_was/assign_if_was_acq_rel.hpp>
+#include <boost/act/interlocked/detail/cas_support.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/act/interlocked/semantics/acq_rel.hpp>
+
+namespace boost { namespace act { namespace interlocked {
+
+template< typename Semantics, typename TargetType, typename OperationType >
+typename lazy_enable_if
+<
+ mpl::and_< is_same< Semantics, acq_rel >
+ , detail::are_valid_store_style_params< TargetType >
+ >
+, remove_cv< TargetType >
+>
+::type
+modify( TargetType& destination, OperationType operation );
+
+} } }
+
+#endif
Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acquire.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acquire.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acquire.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -12,25 +12,31 @@
#include <boost/act/interlocked/assign_if_was/assign_if_was_acquire.hpp>
#include <boost/act/interlocked/detail/cas_support.hpp>
#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/is_same.hpp>
#include <boost/utility/enable_if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/act/interlocked/semantics/acquire.hpp>
+#include <boost/act/interlocked/load/load_acquire.hpp>
namespace boost { namespace act { namespace interlocked {
-template< typename TargetType, typename OperationType >
+template< typename Semantics, typename TargetType, typename OperationType >
typename lazy_enable_if
<
- detail::are_valid_store_style_params< TargetType >
+ mpl::and_< is_same< Semantics, acquire >
+ , detail::are_valid_store_style_params< TargetType >
+ >
, remove_cv< TargetType >
>
::type
-modify_acquire( TargetType& destination, OperationType operation )
+modify( TargetType& destination, OperationType operation )
{
typedef typename remove_cv< TargetType >::type unqualified_type;
unqualified_type new_value;
- for( unqualified_type curr_value = interlocked::load( target )
- ; ( new_value = interlocked::assign_if_was_acquire
- ( target
+ for( unqualified_type curr_value = interlocked::load< acquire >( destination )
+ ; ( new_value = interlocked::assign_if_was< acquire >
+ ( destination
, operation( curr_value )
, curr_value
)
Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acquire_fwd.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acquire_fwd.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_acquire_fwd.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -9,20 +9,26 @@
#ifndef BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_ACQUIRE_FWD_HPP
#define BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_ACQUIRE_FWD_HPP
+#include <boost/act/interlocked/assign_if_was/assign_if_was_acquire.hpp>
#include <boost/act/interlocked/detail/cas_support.hpp>
#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/is_same.hpp>
#include <boost/utility/enable_if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/act/interlocked/semantics/acquire.hpp>
namespace boost { namespace act { namespace interlocked {
-template< typename TargetType, typename OperationType >
+template< typename Semantics, typename TargetType, typename OperationType >
typename lazy_enable_if
<
- detail::are_valid_store_style_params< TargetType >
+ mpl::and_< is_same< Semantics, acquire >
+ , detail::are_valid_store_style_params< TargetType >
+ >
, remove_cv< TargetType >
>
::type
-modify_acquire( TargetType& destination, OperationType operation );
+modify( TargetType& destination, OperationType operation );
} } }
Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_fwd.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_fwd.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_fwd.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -12,6 +12,9 @@
#include <boost/act/interlocked/detail/cas_support.hpp>
#include <boost/type_traits/remove_cv.hpp>
#include <boost/utility/enable_if.hpp>
+#include <boost/act/interlocked/semantics/default.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/type_traits/is_same.hpp>
namespace boost { namespace act { namespace interlocked {
@@ -24,6 +27,17 @@
::type
modify( TargetType& destination, OperationType operation );
+template< typename Semantics, typename TargetType, typename OperationType >
+typename lazy_enable_if
+<
+ mpl::and_< is_same< Semantics, default_ >
+ , detail::are_valid_store_style_params< TargetType >
+ >
+, remove_cv< TargetType >
+>
+::type
+modify( TargetType& destination, OperationType operation );
+
} } }
#endif
Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_release.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_release.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_release.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -12,25 +12,32 @@
#include <boost/act/interlocked/assign_if_was/assign_if_was_release.hpp>
#include <boost/act/interlocked/detail/cas_support.hpp>
#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/is_same.hpp>
#include <boost/utility/enable_if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/act/interlocked/semantics/unordered.hpp>
+#include <boost/act/interlocked/semantics/release.hpp>
+#include <boost/act/interlocked/load/load_unordered.hpp>
namespace boost { namespace act { namespace interlocked {
-template< typename TargetType, typename OperationType >
+template< typename Semantics, typename TargetType, typename OperationType >
typename lazy_enable_if
<
- detail::are_valid_store_style_params< TargetType >
+ mpl::and_< is_same< Semantics, release >
+ , detail::are_valid_store_style_params< TargetType >
+ >
, remove_cv< TargetType >
>
::type
-modify_release( TargetType& destination, OperationType operation )
+modify( TargetType& destination, OperationType operation )
{
typedef typename remove_cv< TargetType >::type unqualified_type;
unqualified_type new_value;
- for( unqualified_type curr_value = interlocked::load( target )
- ; ( new_value = interlocked::assign_if_was_release
- ( target
+ for( unqualified_type curr_value = interlocked::load< unordered >(destination)
+ ; ( new_value = interlocked::assign_if_was< release >
+ ( destination
, operation( curr_value )
, curr_value
)
Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_release_fwd.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_release_fwd.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_release_fwd.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -9,20 +9,26 @@
#ifndef BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_RELEASE_FWD_HPP
#define BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_RELEASE_FWD_HPP
+#include <boost/act/interlocked/assign_if_was/assign_if_was_release.hpp>
#include <boost/act/interlocked/detail/cas_support.hpp>
#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/is_same.hpp>
#include <boost/utility/enable_if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/act/interlocked/semantics/release.hpp>
namespace boost { namespace act { namespace interlocked {
-template< typename TargetType, typename OperationType >
+template< typename Semantics, typename TargetType, typename OperationType >
typename lazy_enable_if
<
- detail::are_valid_store_style_params< TargetType >
+ mpl::and_< is_same< Semantics, release >
+ , detail::are_valid_store_style_params< TargetType >
+ >
, remove_cv< TargetType >
>
::type
-modify_release( TargetType& destination, OperationType operation );
+modify( TargetType& destination, OperationType operation );
} } }
Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_unordered.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_unordered.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -0,0 +1,54 @@
+/*=============================================================================
+ Copyright (c) 2006, 2007 Matthew Calabrese
+
+ Use, modification and distribution is subject to the Boost Software
+ License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_UNORDERED_HPP
+#define BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_UNORDERED_HPP
+
+#include <boost/act/interlocked/assign_if_was/assign_if_was_unordered.hpp>
+#include <boost/act/interlocked/detail/cas_support.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/act/interlocked/semantics/unordered.hpp>
+#include <boost/act/interlocked/load/load_unordered.hpp>
+
+namespace boost { namespace act { namespace interlocked {
+
+template< typename Semantics, typename TargetType, typename OperationType >
+typename lazy_enable_if
+<
+ mpl::and_< is_same< Semantics, unordered >
+ , detail::are_valid_store_style_params< TargetType >
+ >
+, remove_cv< TargetType >
+>
+::type
+modify( TargetType& destination, OperationType operation )
+{
+ typedef typename remove_cv< TargetType >::type unqualified_type;
+ unqualified_type new_value;
+
+ for( unqualified_type curr_value = interlocked::load< unordered >(destination)
+ ; ( new_value = interlocked::assign_if_was< unordered >
+ ( destination
+ , operation( curr_value )
+ , curr_value
+ )
+ )
+ != curr_value
+ ; curr_value = new_value
+ );
+
+ // Note: new_value is the old value here
+ return new_value;
+}
+
+} } }
+
+#endif
Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_unordered_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify/modify_unordered_fwd.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -0,0 +1,35 @@
+/*=============================================================================
+ Copyright (c) 2006, 2007 Matthew Calabrese
+
+ Use, modification and distribution is subject to the Boost Software
+ License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_UNORDERED_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_MODIFY_MODIFY_UNORDERED_FWD_HPP
+
+#include <boost/act/interlocked/assign_if_was/assign_if_was_unordered.hpp>
+#include <boost/act/interlocked/detail/cas_support.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/act/interlocked/semantics/unordered.hpp>
+
+namespace boost { namespace act { namespace interlocked {
+
+template< typename Semantics, typename TargetType, typename OperationType >
+typename lazy_enable_if
+<
+ mpl::and_< is_same< Semantics, unordered >
+ , detail::are_valid_store_style_params< TargetType >
+ >
+, remove_cv< TargetType >
+>
+::type
+modify( TargetType& destination, OperationType operation );
+
+} } }
+
+#endif
Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify_fwd.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify_fwd.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/modify_fwd.hpp 2007-06-29 03:28:24 EDT (Fri, 29 Jun 2007)
@@ -12,5 +12,7 @@
#include <boost/act/interlocked/modify/modify_fwd.hpp>
#include <boost/act/interlocked/modify/modify_acquire_fwd.hpp>
#include <boost/act/interlocked/modify/modify_release_fwd.hpp>
+#include <boost/act/interlocked/modify/modify_acq_rel_fwd.hpp>
+#include <boost/act/interlocked/modify/modify_unordered_fwd.hpp>
#endif
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk