Boost logo

Boost-Commit :

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,


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