$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r71495 - sandbox/mm_ptr/boost
From: phil_at_[hidden]
Date: 2011-04-25 18:23:03
Author: pbouchard
Date: 2011-04-25 18:23:03 EDT (Mon, 25 Apr 2011)
New Revision: 71495
URL: http://svn.boost.org/trac/boost/changeset/71495
Log:
* Multithread support fix
Text files modified: 
   sandbox/mm_ptr/boost/mm_ptr.hpp |    11 +++++++----                             
   1 files changed, 7 insertions(+), 4 deletions(-)
Modified: sandbox/mm_ptr/boost/mm_ptr.hpp
==============================================================================
--- sandbox/mm_ptr/boost/mm_ptr.hpp	(original)
+++ sandbox/mm_ptr/boost/mm_ptr.hpp	2011-04-25 18:23:03 EDT (Mon, 25 Apr 2011)
@@ -70,13 +70,12 @@
     intrusive_list includes_;						/**< List of all sets of an union. */
     intrusive_list elements_;						/**< List of all pointee objects belonging to a @c mm_header . */
 
-#ifndef BOOST_DISABLE_THREADS
-	mutex mutex_;
-#endif
-
     static fast_pool_allocator<mm_header> pool_;	/**< Pool where all sets are allocated. */
 
 public:
+#ifndef BOOST_DISABLE_THREADS
+	mutex mutex_;
+#endif
         bool destroy_;									/**< Destruction sequence initiated. */
     intrusive_list::node tag_;						/**< Tag used to enlist to @c mm_header::includes_ . */
 
@@ -412,6 +411,10 @@
         {
             if (p->init_)
                 return;
+
+#ifndef BOOST_DISABLE_THREADS
+        	mutex::scoped_lock scoped_lock(ps_->mutex_);
+#endif
         
                         // iterate memory blocks
             for (intrusive_list::iterator<mm_base, & mm_base::init_tag_> i = p->inits_.begin(); i != p->inits_.end(); ++ i)