Boost logo

Boost-Commit :

From: matt_calabrese_at_[hidden]
Date: 2007-07-09 16:10:09


Author: matt_calabrese
Date: 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
New Revision: 7401
URL: http://svn.boost.org/trac/boost/changeset/7401

Log:
Set up multiply_assign and divide_assign. Began laying down the framework for sequential semantics and thread_unsafe semantics.

Added:
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_acq_rel_default
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_acquire_default
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_release_default
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_unordered_default
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_acq_rel.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_acq_rel_fwd.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_aquire_fwd.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_fwd.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_release_fwd.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_sequential.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_sequential_fwd.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_unordered.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_unordered_fwd.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_acq_rel_default
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_acquire_default
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_release_default
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_sequential_default
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_unordered_default
Removed:
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/bitand_assign/detail/bitand_assign_acquire_default.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/bitand_assign/detail/bitand_assign_default.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/bitand_assign/detail/bitand_assign_release_default.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_acquire_default.hpp
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_default.hpp
Text files modified:
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked.hpp | 12 ++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/add_assign/add_assign.hpp | 2
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/add_assign/add_assign_fwd.hpp | 2
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign.hpp | 57 ++++++++++++++++++++++++++++++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_acquire.hpp | 19 +++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_release.hpp | 19 +++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign.hpp | 13 ++++----
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign.hpp | 57 ++++++++++++++++++++++++++++++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acq_rel.hpp | 19 +++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acq_rel_fwd.hpp | 19 +++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acquire.hpp | 19 +++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acquire_fwd.hpp | 19 +++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_fwd.hpp | 52 ++++++++++++++++++++++++++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_release.hpp | 19 +++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_release_fwd.hpp | 19 +++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_unordered.hpp | 19 +++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_unordered_fwd.hpp | 19 +++++++++++++
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign_fwd.hpp | 13 ++++----
   sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked_fwd.hpp | 15 +++++++++
   19 files changed, 398 insertions(+), 15 deletions(-)

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -11,8 +11,20 @@
 
 #include <boost/act/interlocked/assign.hpp>
 #include <boost/act/interlocked/assign_if_was.hpp>
+#include <boost/act/interlocked/bitand_assign.hpp>
+#include <boost/act/interlocked/bitor_assign.hpp>
 #include <boost/act/interlocked/decrement.hpp>
+#include <boost/act/interlocked/divide_assign.hpp>
 #include <boost/act/interlocked/increment.hpp>
+#include <boost/act/interlocked/integer.hpp>
 #include <boost/act/interlocked/load.hpp>
+#include <boost/act/interlocked/lshift_assign.hpp>
+#include <boost/act/interlocked/modify.hpp>
+#include <boost/act/interlocked/multiply_assign.hpp>
+#include <boost/act/interlocked/rshift_assign.hpp>
+#include <boost/act/interlocked/semantics.hpp>
+#include <boost/act/interlocked/store.hpp>
+#include <boost/act/interlocked/subtract_assign.hpp>
+#include <boost/act/interlocked/type_traits.hpp>
 
 #endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/add_assign/add_assign.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/add_assign/add_assign.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/add_assign/add_assign.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -20,7 +20,7 @@
 #include <boost/type_traits/remove_cv.hpp>
 #include <boost/act/interlocked/add_assign/add_assign_acq_rel.hpp>
 
-#include <boost/act/interlocked/detail/cas_support.hpp>
+#include <boost/act/interlocked/detail/interlocked_operand_validators.hpp>
 
 namespace boost { namespace act { namespace interlocked {
 

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/add_assign/add_assign_fwd.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/add_assign/add_assign_fwd.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/add_assign/add_assign_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -18,7 +18,7 @@
 #include <boost/type_traits/is_same.hpp>
 #include <boost/utility/enable_if.hpp>
 
-#include <boost/act/interlocked/detail/cas_support.hpp>
+#include <boost/act/interlocked/detail/interlocked_operand_validators.hpp>
 
 #include <boost/type_traits/remove_cv.hpp>
 

Deleted: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/bitand_assign/detail/bitand_assign_acquire_default.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/bitand_assign/detail/bitand_assign_acquire_default.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
+++ (empty file)
@@ -1,19 +0,0 @@
-/*=============================================================================
- 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_BITAND_ASSIGN_DETAIL_BITAND_ASSIGN_ACQUIRE_DEFAULT_HPP
-#define BOOST_ACT_INTERLOCKED_BITAND_ASSIGN_DETAIL_BITAND_ASSIGN_ACQUIRE_DEFAULT_HPP
-
-#include <boost/act/interlocked/detail/binary_default.hpp>
-
-#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_INFO \
-( bitand_assign, acquire, & )
-
-#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT()
-
-#endif

Deleted: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/bitand_assign/detail/bitand_assign_default.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/bitand_assign/detail/bitand_assign_default.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
+++ (empty file)
@@ -1,19 +0,0 @@
-/*=============================================================================
- 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_BITAND_ASSIGN_DETAIL_BITAND_ASSIGN_DEFAULT_HPP
-#define BOOST_ACT_INTERLOCKED_BITAND_ASSIGN_DETAIL_BITAND_ASSIGN_DEFAULT_HPP
-
-#include <boost/act/interlocked/detail/binary_default.hpp>
-
-#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_INFO \
-( bitand_assign, acq_rel, & )
-
-#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT()
-
-#endif

Deleted: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/bitand_assign/detail/bitand_assign_release_default.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/bitand_assign/detail/bitand_assign_release_default.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
+++ (empty file)
@@ -1,19 +0,0 @@
-/*=============================================================================
- 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_BITAND_ASSIGN_DETAIL_BITAND_ASSIGN_RELEASE_DEFAULT_HPP
-#define BOOST_ACT_INTERLOCKED_BITAND_ASSIGN_DETAIL_BITAND_ASSIGN_RELEASE_DEFAULT_HPP
-
-#include <boost/act/interlocked/detail/binary_default.hpp>
-
-#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_INFO \
-( bitand_assign, release, & )
-
-#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT()
-
-#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_acq_rel_default
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_acq_rel_default 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DETAIL_DIV_ASSIGN_ACQ_REL_DEFAULT_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DETAIL_DIV_ASSIGN_ACQ_REL_DEFAULT_HPP
+
+#include <boost/act/interlocked/detail/binary_default.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_INFO \
+( divide_assign, acq_rel, / )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT()
+
+#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_acquire_default
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_acquire_default 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DETAIL_DIV_ASSIGN_ACQUIRE_DEFAULT_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DETAIL_DIV_ASSIGN_ACQUIRE_DEFAULT_HPP
+
+#include <boost/act/interlocked/detail/binary_default.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_INFO \
+( divide_assign, acquire, / )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT()
+
+#endif

Deleted: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_acquire_default.hpp
==============================================================================

Deleted: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_default.hpp
==============================================================================

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_release_default
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_release_default 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DETAIL_DIV_ASSIGN_RELEASE_DEFAULT_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DETAIL_DIV_ASSIGN_RELEASE_DEFAULT_HPP
+
+#include <boost/act/interlocked/detail/binary_default.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_INFO \
+( divide_assign, release, / )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT()
+
+#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_unordered_default
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/detail/divide_assign_unordered_default 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DETAIL_DIV_ASSIGN_UNORDERED_DEFAULT_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DETAIL_DIV_ASSIGN_UNORDERED_DEFAULT_HPP
+
+#include <boost/act/interlocked/detail/binary_default.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_INFO \
+( divide_assign, unordered, / )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT()
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,57 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DIV_ASSIGN_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DIV_ASSIGN_HPP
+
+#include <boost/act/config/interlocked/has.hpp>
+
+#if BOOST_ACT_INTERLOCKED_HAS( divide_assign, acq_rel )
+
+#include <boost/act/interlocked/semantics/default.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/act/interlocked/divide_assign/divide_assign_acq_rel.hpp>
+
+#include <boost/act/interlocked/detail/interlocked_operand_validators.hpp>
+
+namespace boost { namespace act { namespace interlocked {
+
+template< typename TargetType, typename SourceType >
+typename lazy_enable_if
+<
+ detail::are_valid_store_style_params< TargetType, SourceType const >
+, remove_cv< TargetType >
+>
+::type
+divide_assign( TargetType& destination, SourceType const& new_value )
+{
+ return interlocked::divide_assign< acq_rel >( destination, new_value );
+}
+
+template< typename Semantics, typename TargetType, typename SourceType >
+typename lazy_enable_if
+<
+ mpl::and_< is_same< Semantics, default_ >
+ , detail::are_valid_store_style_params< TargetType, SourceType const >
+ >
+, remove_cv< TargetType >
+>
+::type
+divide_assign( TargetType& destination, SourceType const& new_value )
+{
+ return interlocked::divide_assign< acq_rel >( destination, new_value );
+}
+
+} } }
+
+#endif
+
+#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_acq_rel.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_acq_rel.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DIV_ASSIGN_ACQ_REL_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DIV_ASSIGN_ACQ_REL_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_INFO \
+( divide_assign, acq_rel, /, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER()
+
+#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_acq_rel_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_acq_rel_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DIV_ASSIGN_ACQ_REL_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DIV_ASSIGN_ACQ_REL_FWD_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder_fwd.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD_INFO \
+( divide_assign, acq_rel, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD()
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_acquire.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_acquire.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_acquire.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DIV_ASSIGN_ACQUIRE_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DIV_ASSIGN_ACQUIRE_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_INFO \
+( divide_assign, acquire, /, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER()
+
+#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_aquire_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_aquire_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DIV_ASSIGN_ACQUIRE_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DIV_ASSIGN_ACQUIRE_FWD_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder_fwd.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD_INFO \
+( divide_assign, acquire, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD()
+
+#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,52 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DIV_ASSIGN_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DIV_ASSIGN_FWD_HPP
+
+#include <boost/act/config/interlocked/has.hpp>
+
+#if BOOST_ACT_INTERLOCKED_HAS( divide_assign, acq_rel )
+
+#include <boost/act/interlocked/semantics/default.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/utility/enable_if.hpp>
+
+#include <boost/act/interlocked/detail/interlocked_operand_validators.hpp>
+
+#include <boost/type_traits/remove_cv.hpp>
+
+namespace boost { namespace act { namespace interlocked {
+
+template< typename TargetType, typename SourceType >
+typename lazy_enable_if
+<
+ detail::are_valid_store_style_params< TargetType, SourceType const >
+, remove_cv< TargetType >
+>
+::type
+divide_assign( TargetType& destination, SourceType const& new_value );
+
+template< typename Semantics, typename TargetType, typename SourceType >
+typename lazy_enable_if
+<
+ mpl::and_< is_same< Semantics, default_ >
+ , detail::are_valid_store_style_params
+ < TargetType, SourceType const >
+ >
+, remove_cv< TargetType >
+>
+::type
+divide_assign( TargetType& destination, SourceType const& new_value );
+
+} } }
+
+#endif
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_release.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_release.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_release.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DIV_ASSIGN_RELEASE_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DIV_ASSIGN_RELEASE_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_INFO \
+( divide_assign, release, /, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER()
+
+#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_release_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_release_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DIV_ASSIGN_RELEASE_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DIV_ASSIGN_RELEASE_FWD_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder_fwd.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD_INFO \
+( divide_assign, release, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD()
+
+#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_sequential.hpp
==============================================================================

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_sequential_fwd.hpp
==============================================================================

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_unordered.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_unordered.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DIV_ASSIGN_UNORDERED_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DIV_ASSIGN_UNORDERED_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_INFO \
+( divide_assign, unordered, /, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER()
+
+#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_unordered_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/divide_assign/divide_assign_unordered_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+//=============================================================================
+ 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_DIV_ASSIGN_DIV_ASSIGN_UNORDERED_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_DIV_ASSIGN_DIV_ASSIGN_UNORDERED_FWD_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder_fwd.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD_INFO \
+( divide_assign, unordered, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD()
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -6,12 +6,13 @@
     http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#ifndef BOOST_ACT_INTERLOCKED_SUBTRACT_ASSIGN_FWD_HPP
-#define BOOST_ACT_INTERLOCKED_SUBTRACT_ASSIGN_FWD_HPP
+#ifndef BOOST_ACT_INTERLOCKED_MULTIPLY_ASSIGN_HPP
+#define BOOST_ACT_INTERLOCKED_MULTIPLY_ASSIGN_HPP
 
-#include <boost/act/interlocked/subtract_assign/subtract_assign_fwd.hpp>
-#include <boost/act/interlocked/subtract_assign/subtract_assign_acquire_fwd.hpp>
-#include <boost/act/interlocked/subtract_assign/subtract_assign_release_fwd.hpp>
-#include <boost/act/interlocked/subtract_assign/subtract_assign_result_fwd.hpp>
+#include <boost/act/interlocked/multiply_assign/multiply_assign.hpp>
+#include <boost/act/interlocked/multiply_assign/multiply_assign_acquire.hpp>
+#include <boost/act/interlocked/multiply_assign/multiply_assign_release.hpp>
+#include <boost/act/interlocked/multiply_assign/multiply_assign_acq_rel.hpp>
+#include <boost/act/interlocked/multiply_assign/multiply_assign_unordered.hpp>
 
 #endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_acq_rel_default
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_acq_rel_default 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_DETAIL_MUL_ASSIGN_ACQ_REL_DEFAULT_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_DETAIL_MUL_ASSIGN_ACQ_REL_DEFAULT_HPP
+
+#include <boost/act/interlocked/detail/binary_default.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_INFO \
+( multiply_assign, acq_rel, * )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT()
+
+#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_acquire_default
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_acquire_default 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_DETAIL_MUL_ASSIGN_ACQUIRE_DEFAULT_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_DETAIL_MUL_ASSIGN_ACQUIRE_DEFAULT_HPP
+
+#include <boost/act/interlocked/detail/binary_default.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_INFO \
+( multiply_assign, acquire, * )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT()
+
+#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_release_default
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_release_default 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_DETAIL_MUL_ASSIGN_RELEASE_DEFAULT_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_DETAIL_MUL_ASSIGN_RELEASE_DEFAULT_HPP
+
+#include <boost/act/interlocked/detail/binary_default.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_INFO \
+( multiply_assign, release, * )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT()
+
+#endif

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_sequential_default
==============================================================================

Added: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_unordered_default
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/detail/multiply_assign_unordered_default 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_DETAIL_MUL_ASSIGN_UNORDERED_DEFAULT_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_DETAIL_MUL_ASSIGN_UNORDERED_DEFAULT_HPP
+
+#include <boost/act/interlocked/detail/binary_default.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT_INFO \
+( multiply_assign, unordered, * )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_DEFAULT()
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,57 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_MUL_ASSIGN_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_MUL_ASSIGN_HPP
+
+#include <boost/act/config/interlocked/has.hpp>
+
+#if BOOST_ACT_INTERLOCKED_HAS( multiply_assign, acq_rel )
+
+#include <boost/act/interlocked/semantics/default.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/act/interlocked/multiply_assign/multiply_assign_acq_rel.hpp>
+
+#include <boost/act/interlocked/detail/interlocked_operand_validators.hpp>
+
+namespace boost { namespace act { namespace interlocked {
+
+template< typename TargetType, typename SourceType >
+typename lazy_enable_if
+<
+ detail::are_valid_store_style_params< TargetType, SourceType const >
+, remove_cv< TargetType >
+>
+::type
+multiply_assign( TargetType& destination, SourceType const& new_value )
+{
+ return interlocked::multiply_assign< acq_rel >( destination, new_value );
+}
+
+template< typename Semantics, typename TargetType, typename SourceType >
+typename lazy_enable_if
+<
+ mpl::and_< is_same< Semantics, default_ >
+ , detail::are_valid_store_style_params< TargetType, SourceType const >
+ >
+, remove_cv< TargetType >
+>
+::type
+multiply_assign( TargetType& destination, SourceType const& new_value )
+{
+ return interlocked::multiply_assign< acq_rel >( destination, new_value );
+}
+
+} } }
+
+#endif
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acq_rel.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acq_rel.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acq_rel.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_MUL_ASSIGN_ACQ_REL_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_MUL_ASSIGN_ACQ_REL_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_INFO \
+( multiply_assign, acq_rel, *, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER()
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acq_rel_fwd.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acq_rel_fwd.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acq_rel_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_MUL_ASSIGN_ACQ_REL_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_MUL_ASSIGN_ACQ_REL_FWD_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder_fwd.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD_INFO \
+( multiply_assign, acq_rel, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD()
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acquire.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acquire.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acquire.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_MUL_ASSIGN_ACQUIRE_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_MUL_ASSIGN_ACQUIRE_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_INFO \
+( multiply_assign, acquire, *, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER()
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acquire_fwd.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acquire_fwd.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_acquire_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_MUL_ASSIGN_ACQUIRE_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_MUL_ASSIGN_ACQUIRE_FWD_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder_fwd.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD_INFO \
+( multiply_assign, acquire, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD()
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_fwd.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_fwd.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,52 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_MUL_ASSIGN_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_MUL_ASSIGN_FWD_HPP
+
+#include <boost/act/config/interlocked/has.hpp>
+
+#if BOOST_ACT_INTERLOCKED_HAS( multiply_assign, acq_rel )
+
+#include <boost/act/interlocked/semantics/default.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/utility/enable_if.hpp>
+
+#include <boost/act/interlocked/detail/interlocked_operand_validators.hpp>
+
+#include <boost/type_traits/remove_cv.hpp>
+
+namespace boost { namespace act { namespace interlocked {
+
+template< typename TargetType, typename SourceType >
+typename lazy_enable_if
+<
+ detail::are_valid_store_style_params< TargetType, SourceType const >
+, remove_cv< TargetType >
+>
+::type
+multiply_assign( TargetType& destination, SourceType const& new_value );
+
+template< typename Semantics, typename TargetType, typename SourceType >
+typename lazy_enable_if
+<
+ mpl::and_< is_same< Semantics, default_ >
+ , detail::are_valid_store_style_params
+ < TargetType, SourceType const >
+ >
+, remove_cv< TargetType >
+>
+::type
+multiply_assign( TargetType& destination, SourceType const& new_value );
+
+} } }
+
+#endif
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_release.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_release.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_release.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_MUL_ASSIGN_RELEASE_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_MUL_ASSIGN_RELEASE_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_INFO \
+( multiply_assign, release, *, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER()
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_release_fwd.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_release_fwd.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_release_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_MUL_ASSIGN_RELEASE_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_MUL_ASSIGN_RELEASE_FWD_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder_fwd.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD_INFO \
+( multiply_assign, release, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD()
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_unordered.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_unordered.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_unordered.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_MUL_ASSIGN_UNORDERED_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_MUL_ASSIGN_UNORDERED_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_INFO \
+( multiply_assign, unordered, *, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER()
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_unordered_fwd.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_unordered_fwd.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign/multiply_assign_unordered_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ 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_MUL_ASSIGN_MUL_ASSIGN_UNORDERED_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_MUL_ASSIGN_MUL_ASSIGN_UNORDERED_FWD_HPP
+
+#include <boost/act/interlocked/detail/binary_forwarder_fwd.hpp>
+
+#define BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD_INFO \
+( multiply_assign, unordered, not_additive )
+
+#include BOOST_ACT_INTERLOCKED_DETAIL_BINARY_FORWARDER_FWD()
+
+#endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign_fwd.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign_fwd.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked/multiply_assign_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -6,12 +6,13 @@
     http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#ifndef BOOST_ACT_INTERLOCKED_SUBTRACT_ASSIGN_FWD_HPP
-#define BOOST_ACT_INTERLOCKED_SUBTRACT_ASSIGN_FWD_HPP
+#ifndef BOOST_ACT_INTERLOCKED_MULTIPLY_ASSIGN_FWD_HPP
+#define BOOST_ACT_INTERLOCKED_MULTIPLY_ASSIGN_FWD_HPP
 
-#include <boost/act/interlocked/subtract_assign/subtract_assign_fwd.hpp>
-#include <boost/act/interlocked/subtract_assign/subtract_assign_acquire_fwd.hpp>
-#include <boost/act/interlocked/subtract_assign/subtract_assign_release_fwd.hpp>
-#include <boost/act/interlocked/subtract_assign/subtract_assign_result_fwd.hpp>
+#include <boost/act/interlocked/multiply_assign/multiply_assign_fwd.hpp>
+#include <boost/act/interlocked/multiply_assign/multiply_assign_acquire_fwd.hpp>
+#include <boost/act/interlocked/multiply_assign/multiply_assign_release_fwd.hpp>
+#include <boost/act/interlocked/multiply_assign/multiply_assign_acq_rel_fwd.hpp>
+#include <boost/act/interlocked/multiply_assign/multiply_assign_unordered_fwd.hpp>
 
 #endif

Modified: sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked_fwd.hpp
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked_fwd.hpp (original)
+++ sandbox/SOC/2006/concurrency/trunk/boost/act/interlocked_fwd.hpp 2007-07-09 16:10:05 EDT (Mon, 09 Jul 2007)
@@ -11,7 +11,20 @@
 
 #include <boost/act/interlocked/assign_fwd.hpp>
 #include <boost/act/interlocked/assign_if_was_fwd.hpp>
-#include <boost/act/interlocked/increment_fwd.hpp>
+#include <boost/act/interlocked/bitand_assign_fwd.hpp>
+#include <boost/act/interlocked/bitor_assign_fwd.hpp>
 #include <boost/act/interlocked/decrement_fwd.hpp>
+#include <boost/act/interlocked/divide_assign_fwd.hpp>
+#include <boost/act/interlocked/increment_fwd.hpp>
+#include <boost/act/interlocked/integer_fwd.hpp>
+#include <boost/act/interlocked/load_fwd.hpp>
+#include <boost/act/interlocked/lshift_assign_fwd.hpp>
+#include <boost/act/interlocked/modify_fwd.hpp>
+#include <boost/act/interlocked/multiply_assign_fwd.hpp>
+#include <boost/act/interlocked/rshift_assign_fwd.hpp>
+#include <boost/act/interlocked/semantics_fwd.hpp>
+#include <boost/act/interlocked/store_fwd.hpp>
+#include <boost/act/interlocked/subtract_assign_fwd.hpp>
+#include <boost/act/interlocked/type_traits_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