$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: igaztanaga_at_[hidden]
Date: 2007-08-25 15:18:29
Author: igaztanaga
Date: 2007-08-25 15:18:28 EDT (Sat, 25 Aug 2007)
New Revision: 38954
URL: http://svn.boost.org/trac/boost/changeset/38954
Log:
#1211: Interprocess tests hang when run in parallel
#1080 boost::interprocess win32 global file mapping issue 
Text files modified: 
   trunk/boost/interprocess/containers/detail/node_alloc_holder.hpp |     2 +-                                      
   trunk/boost/interprocess/containers/detail/tree.hpp              |    20 +++++++++++---------                    
   2 files changed, 12 insertions(+), 10 deletions(-)
Modified: trunk/boost/interprocess/containers/detail/node_alloc_holder.hpp
==============================================================================
--- trunk/boost/interprocess/containers/detail/node_alloc_holder.hpp	(original)
+++ trunk/boost/interprocess/containers/detail/node_alloc_holder.hpp	2007-08-25 15:18:28 EDT (Sat, 25 Aug 2007)
@@ -257,7 +257,7 @@
    {
       NodePtr p = this->allocate_one();
       Deallocator node_deallocator(p, *this);
-      ::boost::interprocess::construct_in_place(detail::get_pointer(p), it);
+      construct_in_place(detail::get_pointer(p), it);
       node_deallocator.release();
       return (p);
    }
Modified: trunk/boost/interprocess/containers/detail/tree.hpp
==============================================================================
--- trunk/boost/interprocess/containers/detail/tree.hpp	(original)
+++ trunk/boost/interprocess/containers/detail/tree.hpp	2007-08-25 15:18:28 EDT (Sat, 25 Aug 2007)
@@ -167,6 +167,17 @@
    #endif
 };
 
+}//namespace detail {
+
+template<class T, class VoidPointer>
+struct has_own_construct_from_it
+   < boost::interprocess::detail::rbtree_node<T, VoidPointer> >
+{
+   static const bool value = true;
+};
+
+namespace detail {
+
 template<class A, class ValueCompare>
 struct intrusive_rbtree_type
 {
@@ -189,15 +200,6 @@
 
 }  //namespace detail {
 
-//This specialization is necessary since std::pair is not movable.
-//We need to hack the constructor to add move semantics
-//to rbtrees
-template<class T, class VoidPointer, class InpIt>
-inline void construct_in_place(detail::rbtree_node<T, VoidPointer>* dest, InpIt source)
-{
-   detail::rbtree_node<T, VoidPointer>::construct(dest, *source);
-}
-
 namespace detail {
 
 template <class Key, class Value, class KeyOfValue,