Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r74083 - in trunk/boost/interprocess: . allocators allocators/detail containers detail indexes ipc mem_algo mem_algo/detail smart_ptr smart_ptr/detail sync sync/emulation sync/posix sync/xsi
From: igaztanaga_at_[hidden]
Date: 2011-08-27 04:31:28


Author: igaztanaga
Date: 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
New Revision: 74083
URL: http://svn.boost.org/trac/boost/changeset/74083

Log:
* Erased containers now that Boost.Container is accepted
* Changed "detail" namespace to "ipcdetail" due to compilation errors in MSVC compilers and wrong ambiguous resolutions.
* Added locking timeout macro to avoid deadlocks
Text files modified:
   trunk/boost/interprocess/allocators/adaptive_pool.hpp | 36 ++++----
   trunk/boost/interprocess/allocators/allocator.hpp | 20 ++--
   trunk/boost/interprocess/allocators/cached_adaptive_pool.hpp | 24 +++---
   trunk/boost/interprocess/allocators/cached_node_allocator.hpp | 24 +++---
   trunk/boost/interprocess/allocators/detail/adaptive_node_pool.hpp | 10 +-
   trunk/boost/interprocess/allocators/detail/allocator_common.hpp | 48 ++++++------
   trunk/boost/interprocess/allocators/detail/node_pool.hpp | 10 +-
   trunk/boost/interprocess/allocators/detail/node_tools.hpp | 4
   trunk/boost/interprocess/allocators/node_allocator.hpp | 36 ++++----
   trunk/boost/interprocess/allocators/private_adaptive_pool.hpp | 24 +++---
   trunk/boost/interprocess/allocators/private_node_allocator.hpp | 24 +++---
   trunk/boost/interprocess/anonymous_shared_memory.hpp | 4
   trunk/boost/interprocess/containers/allocation_type.hpp | 2
   trunk/boost/interprocess/containers/containers_fwd.hpp | 2
   trunk/boost/interprocess/containers/deque.hpp | 2
   trunk/boost/interprocess/containers/flat_map.hpp | 2
   trunk/boost/interprocess/containers/flat_set.hpp | 2
   trunk/boost/interprocess/containers/list.hpp | 2
   trunk/boost/interprocess/containers/map.hpp | 2
   trunk/boost/interprocess/containers/pair.hpp | 2
   trunk/boost/interprocess/containers/set.hpp | 2
   trunk/boost/interprocess/containers/slist.hpp | 2
   trunk/boost/interprocess/containers/stable_vector.hpp | 2
   trunk/boost/interprocess/containers/string.hpp | 2
   trunk/boost/interprocess/containers/vector.hpp | 2
   trunk/boost/interprocess/containers/version_type.hpp | 2
   trunk/boost/interprocess/creation_tags.hpp | 4
   trunk/boost/interprocess/detail/atomic.hpp | 36 ++++----
   trunk/boost/interprocess/detail/cast_tags.hpp | 4
   trunk/boost/interprocess/detail/file_wrapper.hpp | 24 +++---
   trunk/boost/interprocess/detail/in_place_interface.hpp | 4
   trunk/boost/interprocess/detail/intermodule_singleton.hpp | 6
   trunk/boost/interprocess/detail/interprocess_tester.hpp | 4
   trunk/boost/interprocess/detail/intersegment_ptr.hpp | 24 +++---
   trunk/boost/interprocess/detail/managed_memory_impl.hpp | 14 +-
   trunk/boost/interprocess/detail/managed_multi_shared_memory.hpp | 6
   trunk/boost/interprocess/detail/managed_open_or_create_impl.hpp | 72 +++++++++---------
   trunk/boost/interprocess/detail/math_functions.hpp | 4
   trunk/boost/interprocess/detail/mpl.hpp | 4
   trunk/boost/interprocess/detail/named_proxy.hpp | 34 ++++----
   trunk/boost/interprocess/detail/os_file_functions.hpp | 20 ++++-
   trunk/boost/interprocess/detail/os_thread_functions.hpp | 4
   trunk/boost/interprocess/detail/pointer_type.hpp | 6
   trunk/boost/interprocess/detail/preprocessor.hpp | 2
   trunk/boost/interprocess/detail/robust_emulation.hpp | 10 +-
   trunk/boost/interprocess/detail/segment_manager_helper.hpp | 38 +++++-----
   trunk/boost/interprocess/detail/tmp_dir_helpers.hpp | 4
   trunk/boost/interprocess/detail/transform_iterator.hpp | 2
   trunk/boost/interprocess/detail/type_traits.hpp | 4
   trunk/boost/interprocess/detail/utilities.hpp | 4
   trunk/boost/interprocess/detail/variadic_templates_tools.hpp | 4
   trunk/boost/interprocess/detail/win32_api.hpp | 5 +
   trunk/boost/interprocess/detail/workaround.hpp | 5 +
   trunk/boost/interprocess/detail/xsi_shared_memory_device.hpp | 36 ++++----
   trunk/boost/interprocess/errors.hpp | 3
   trunk/boost/interprocess/file_mapping.hpp | 20 ++--
   trunk/boost/interprocess/indexes/iunordered_set_index.hpp | 6
   trunk/boost/interprocess/indexes/map_index.hpp | 8 +-
   trunk/boost/interprocess/indexes/unordered_map_index.hpp | 2
   trunk/boost/interprocess/ipc/message_queue.hpp | 44 +++++-----
   trunk/boost/interprocess/managed_external_buffer.hpp | 4
   trunk/boost/interprocess/managed_heap_memory.hpp | 4
   trunk/boost/interprocess/managed_mapped_file.hpp | 24 +++---
   trunk/boost/interprocess/managed_shared_memory.hpp | 24 +++---
   trunk/boost/interprocess/managed_windows_shared_memory.hpp | 22 ++--
   trunk/boost/interprocess/managed_xsi_shared_memory.hpp | 20 ++--
   trunk/boost/interprocess/mapped_region.hpp | 36 ++++----
   trunk/boost/interprocess/mem_algo/detail/mem_algo_common.hpp | 26 +++---
   trunk/boost/interprocess/mem_algo/detail/multi_simple_seq_fit.hpp | 4
   trunk/boost/interprocess/mem_algo/detail/multi_simple_seq_fit_impl.hpp | 58 +++++++-------
   trunk/boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp | 76 ++++++++++----------
   trunk/boost/interprocess/mem_algo/rbtree_best_fit.hpp | 20 ++--
   trunk/boost/interprocess/mem_algo/simple_seq_fit.hpp | 4
   trunk/boost/interprocess/offset_ptr.hpp | 20 ++--
   trunk/boost/interprocess/permissions.hpp | 6
   trunk/boost/interprocess/segment_manager.hpp | 152 ++++++++++++++++++++--------------------
   trunk/boost/interprocess/shared_memory_object.hpp | 66 ++++++++--------
   trunk/boost/interprocess/smart_ptr/deleter.hpp | 2
   trunk/boost/interprocess/smart_ptr/detail/shared_count.hpp | 10 +-
   trunk/boost/interprocess/smart_ptr/detail/sp_counted_base_atomic.hpp | 14 +-
   trunk/boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp | 12 +-
   trunk/boost/interprocess/smart_ptr/enable_shared_from_this.hpp | 4
   trunk/boost/interprocess/smart_ptr/intrusive_ptr.hpp | 10 +-
   trunk/boost/interprocess/smart_ptr/scoped_ptr.hpp | 6
   trunk/boost/interprocess/smart_ptr/shared_ptr.hpp | 40 +++++-----
   trunk/boost/interprocess/smart_ptr/unique_ptr.hpp | 58 +++++++-------
   trunk/boost/interprocess/smart_ptr/weak_ptr.hpp | 10 +-
   trunk/boost/interprocess/sync/emulation/interprocess_condition.hpp | 26 +++---
   trunk/boost/interprocess/sync/emulation/interprocess_semaphore.hpp | 16 ++--
   trunk/boost/interprocess/sync/emulation/mutex.hpp | 14 +-
   trunk/boost/interprocess/sync/emulation/named_creation_functor.hpp | 14 +-
   trunk/boost/interprocess/sync/emulation/recursive_mutex.hpp | 56 +++++++-------
   trunk/boost/interprocess/sync/file_lock.hpp | 34 ++++----
   trunk/boost/interprocess/sync/interprocess_mutex.hpp | 22 ++++-
   trunk/boost/interprocess/sync/interprocess_recursive_mutex.hpp | 21 ++++-
   trunk/boost/interprocess/sync/interprocess_semaphore.hpp | 2
   trunk/boost/interprocess/sync/named_condition.hpp | 26 +++---
   trunk/boost/interprocess/sync/named_mutex.hpp | 30 +++---
   trunk/boost/interprocess/sync/named_recursive_mutex.hpp | 20 ++--
   trunk/boost/interprocess/sync/named_semaphore.hpp | 30 +++---
   trunk/boost/interprocess/sync/named_upgradable_mutex.hpp | 20 ++--
   trunk/boost/interprocess/sync/posix/interprocess_barrier.hpp | 4
   trunk/boost/interprocess/sync/posix/interprocess_condition.hpp | 2
   trunk/boost/interprocess/sync/posix/interprocess_mutex.hpp | 19 +++-
   trunk/boost/interprocess/sync/posix/interprocess_recursive_mutex.hpp | 18 +++-
   trunk/boost/interprocess/sync/posix/pthread_helpers.hpp | 4
   trunk/boost/interprocess/sync/posix/ptime_to_timespec.hpp | 4
   trunk/boost/interprocess/sync/posix/semaphore_wrapper.hpp | 28 +++---
   trunk/boost/interprocess/sync/scoped_lock.hpp | 8 +-
   trunk/boost/interprocess/sync/sharable_lock.hpp | 4
   trunk/boost/interprocess/sync/upgradable_lock.hpp | 4
   trunk/boost/interprocess/sync/xsi/xsi_named_mutex.hpp | 6
   trunk/boost/interprocess/windows_shared_memory.hpp | 18 ++--
   trunk/boost/interprocess/xsi_shared_memory.hpp | 18 ++--
   114 files changed, 1015 insertions(+), 944 deletions(-)

Modified: trunk/boost/interprocess/allocators/adaptive_pool.hpp
==============================================================================
--- trunk/boost/interprocess/allocators/adaptive_pool.hpp (original)
+++ trunk/boost/interprocess/allocators/adaptive_pool.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -28,7 +28,7 @@
 #include <boost/interprocess/allocators/detail/adaptive_node_pool.hpp>
 #include <boost/interprocess/exceptions.hpp>
 #include <boost/interprocess/allocators/detail/allocator_common.hpp>
-#include <boost/interprocess/containers/container/detail/multiallocation_chain.hpp>
+#include <boost/container/detail/multiallocation_chain.hpp>
 #include <boost/interprocess/detail/mpl.hpp>
 #include <memory>
 #include <algorithm>
@@ -42,7 +42,7 @@
 
 /// @cond
 
-namespace detail{
+namespace ipcdetail{
 
 template < unsigned int Version
          , class T
@@ -71,7 +71,7 @@
    template <int dummy>
    struct node_pool
    {
- typedef detail::shared_adaptive_node_pool
+ typedef ipcdetail::shared_adaptive_node_pool
       < SegmentManager, sizeof_value<T>::value, NodesPerBlock, MaxFreeBlocks, OverheadPercent> type;
 
       static type *get(void *p)
@@ -88,9 +88,9 @@
    typedef typename boost::
       pointer_to_other<void_pointer, const T>::type const_pointer;
    typedef T value_type;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename segment_manager::size_type size_type;
    typedef typename segment_manager::difference_type difference_type;
@@ -121,14 +121,14 @@
    //!pool. Increments the reference count of the associated node pool.
    //!Can throw boost::interprocess::bad_alloc
    adaptive_pool_base(segment_manager *segment_mngr)
- : mp_node_pool(detail::get_or_create_node_pool<typename node_pool<0>::type>(segment_mngr)) { }
+ : mp_node_pool(ipcdetail::get_or_create_node_pool<typename node_pool<0>::type>(segment_mngr)) { }
 
    //!Copy constructor from other adaptive_pool_base. Increments the reference
    //!count of the associated node pool. Never throws
    adaptive_pool_base(const adaptive_pool_base &other)
       : mp_node_pool(other.get_node_pool())
    {
- node_pool<0>::get(detail::get_pointer(mp_node_pool))->inc_ref_count();
+ node_pool<0>::get(ipcdetail::get_pointer(mp_node_pool))->inc_ref_count();
    }
 
    //!Assignment from other adaptive_pool_base
@@ -145,27 +145,27 @@
    template<class T2>
    adaptive_pool_base
       (const adaptive_pool_base<Version, T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent> &other)
- : mp_node_pool(detail::get_or_create_node_pool<typename node_pool<0>::type>(other.get_segment_manager())) { }
+ : mp_node_pool(ipcdetail::get_or_create_node_pool<typename node_pool<0>::type>(other.get_segment_manager())) { }
 
    //!Destructor, removes node_pool_t from memory
    //!if its reference count reaches to zero. Never throws
    ~adaptive_pool_base()
- { detail::destroy_node_pool_if_last_link(node_pool<0>::get(detail::get_pointer(mp_node_pool))); }
+ { ipcdetail::destroy_node_pool_if_last_link(node_pool<0>::get(ipcdetail::get_pointer(mp_node_pool))); }
 
    //!Returns a pointer to the node pool.
    //!Never throws
    void* get_node_pool() const
- { return detail::get_pointer(mp_node_pool); }
+ { return ipcdetail::get_pointer(mp_node_pool); }
 
    //!Returns the segment manager.
    //!Never throws
    segment_manager* get_segment_manager()const
- { return node_pool<0>::get(detail::get_pointer(mp_node_pool))->get_segment_manager(); }
+ { return node_pool<0>::get(ipcdetail::get_pointer(mp_node_pool))->get_segment_manager(); }
 
    //!Swaps allocators. Does not throw. If each allocator is placed in a
    //!different memory segment, the result is undefined.
    friend void swap(self_t &alloc1, self_t &alloc2)
- { detail::do_swap(alloc1.mp_node_pool, alloc2.mp_node_pool); }
+ { ipcdetail::do_swap(alloc1.mp_node_pool, alloc2.mp_node_pool); }
 
    /// @cond
    private:
@@ -204,7 +204,7 @@
>
 {
    public:
- typedef detail::adaptive_pool_base
+ typedef ipcdetail::adaptive_pool_base
          < 1, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent> base_t;
 
    template<class T2>
@@ -224,7 +224,7 @@
    {}
 };
 
-} //namespace detail{
+} //namespace ipcdetail{
 
 /// @endcond
 
@@ -250,7 +250,7 @@
>
 class adaptive_pool
    /// @cond
- : public detail::adaptive_pool_base
+ : public ipcdetail::adaptive_pool_base
          < 2
          , T
          , SegmentManager
@@ -262,7 +262,7 @@
 {
 
    #ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
- typedef detail::adaptive_pool_base
+ typedef ipcdetail::adaptive_pool_base
          < 2, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent> base_t;
    public:
    typedef boost::interprocess::version_type<adaptive_pool, 2> version;
@@ -290,9 +290,9 @@
    typedef implementation_defined::pointer pointer;
    typedef implementation_defined::const_pointer const_pointer;
    typedef T value_type;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename segment_manager::size_type size_type;
    typedef typename segment_manager::difference_type difference_type;

Modified: trunk/boost/interprocess/allocators/allocator.hpp
==============================================================================
--- trunk/boost/interprocess/allocators/allocator.hpp (original)
+++ trunk/boost/interprocess/allocators/allocator.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -22,7 +22,7 @@
 
 #include <boost/interprocess/interprocess_fwd.hpp>
 #include <boost/interprocess/containers/allocation_type.hpp>
-#include <boost/interprocess/containers/container/detail/multiallocation_chain.hpp>
+#include <boost/container/detail/multiallocation_chain.hpp>
 #include <boost/interprocess/allocators/detail/allocator_common.hpp>
 #include <boost/interprocess/detail/utilities.hpp>
 #include <boost/interprocess/containers/version_type.hpp>
@@ -91,9 +91,9 @@
       <cvoid_ptr, T>::type pointer;
    typedef typename boost::
       pointer_to_other<pointer, const T>::type const_pointer;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename segment_manager::size_type size_type;
    typedef typename segment_manager::difference_type difference_type;
@@ -118,7 +118,7 @@
    //!Returns the segment manager.
    //!Never throws
    segment_manager* get_segment_manager()const
- { return detail::get_pointer(mp_mngr); }
+ { return ipcdetail::get_pointer(mp_mngr); }
 
    //!Constructor from the segment manager.
    //!Never throws
@@ -149,7 +149,7 @@
    //!Deallocates memory previously allocated.
    //!Never throws
    void deallocate(const pointer &ptr, size_type)
- { mp_mngr->deallocate((void*)detail::get_pointer(ptr)); }
+ { mp_mngr->deallocate((void*)ipcdetail::get_pointer(ptr)); }
 
    //!Returns the number of elements that could be allocated.
    //!Never throws
@@ -159,14 +159,14 @@
    //!Swap segment manager. Does not throw. If each allocator is placed in
    //!different memory segments, the result is undefined.
    friend void swap(self_t &alloc1, self_t &alloc2)
- { detail::do_swap(alloc1.mp_mngr, alloc2.mp_mngr); }
+ { ipcdetail::do_swap(alloc1.mp_mngr, alloc2.mp_mngr); }
 
    //!Returns maximum the number of objects the previously allocated memory
    //!pointed by p can hold. This size only works for memory allocated with
    //!allocate, allocation_command and allocate_many.
    size_type size(const pointer &p) const
    {
- return (size_type)mp_mngr->size(detail::get_pointer(p))/sizeof(T);
+ return (size_type)mp_mngr->size(ipcdetail::get_pointer(p))/sizeof(T);
    }
 
    std::pair<pointer, bool>
@@ -176,7 +176,7 @@
                          size_type &received_size, const pointer &reuse = 0)
    {
       return mp_mngr->allocation_command
- (command, limit_size, preferred_size, received_size, detail::get_pointer(reuse));
+ (command, limit_size, preferred_size, received_size, ipcdetail::get_pointer(reuse));
    }
 
    //!Allocates many elements of size elem_size in a contiguous block
@@ -255,12 +255,12 @@
    //!Copy construct an object
    //!Throws if T's copy constructor throws
    void construct(const pointer &ptr, const_reference v)
- { new((void*)detail::get_pointer(ptr)) value_type(v); }
+ { new((void*)ipcdetail::get_pointer(ptr)) value_type(v); }
 
    //!Default construct an object.
    //!Throws if T's default constructor throws
    void construct(const pointer &ptr)
- { new((void*)detail::get_pointer(ptr)) value_type; }
+ { new((void*)ipcdetail::get_pointer(ptr)) value_type; }
 
    //!Destroys object. Throws if object's
    //!destructor throws

Modified: trunk/boost/interprocess/allocators/cached_adaptive_pool.hpp
==============================================================================
--- trunk/boost/interprocess/allocators/cached_adaptive_pool.hpp (original)
+++ trunk/boost/interprocess/allocators/cached_adaptive_pool.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -35,7 +35,7 @@
 
 /// @cond
 
-namespace detail {
+namespace ipcdetail {
 
 template < class T
          , class SegmentManager
@@ -44,9 +44,9 @@
          , unsigned char OverheadPercent = 5
>
 class cached_adaptive_pool_v1
- : public detail::cached_allocator_impl
+ : public ipcdetail::cached_allocator_impl
          < T
- , detail::shared_adaptive_node_pool
+ , ipcdetail::shared_adaptive_node_pool
             < SegmentManager
             , sizeof_value<T>::value
             , NodesPerBlock
@@ -56,9 +56,9 @@
          , 1>
 {
    public:
- typedef detail::cached_allocator_impl
+ typedef ipcdetail::cached_allocator_impl
          < T
- , detail::shared_adaptive_node_pool
+ , ipcdetail::shared_adaptive_node_pool
             < SegmentManager
             , sizeof_value<T>::value
             , NodesPerBlock
@@ -89,7 +89,7 @@
    {}
 };
 
-} //namespace detail{
+} //namespace ipcdetail{
 
 /// @endcond
 
@@ -118,9 +118,9 @@
>
 class cached_adaptive_pool
    /// @cond
- : public detail::cached_allocator_impl
+ : public ipcdetail::cached_allocator_impl
          < T
- , detail::shared_adaptive_node_pool
+ , ipcdetail::shared_adaptive_node_pool
             < SegmentManager
             , sizeof_value<T>::value
             , NodesPerBlock
@@ -133,9 +133,9 @@
 
    #ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
    public:
- typedef detail::cached_allocator_impl
+ typedef ipcdetail::cached_allocator_impl
          < T
- , detail::shared_adaptive_node_pool
+ , ipcdetail::shared_adaptive_node_pool
             < SegmentManager
             , sizeof_value<T>::value
             , NodesPerBlock
@@ -172,9 +172,9 @@
    typedef implementation_defined::pointer pointer;
    typedef implementation_defined::const_pointer const_pointer;
    typedef T value_type;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename segment_manager::size_type size_type;
    typedef typename segment_manager::difference_type difference_type;

Modified: trunk/boost/interprocess/allocators/cached_node_allocator.hpp
==============================================================================
--- trunk/boost/interprocess/allocators/cached_node_allocator.hpp (original)
+++ trunk/boost/interprocess/allocators/cached_node_allocator.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -36,16 +36,16 @@
 
 /// @cond
 
-namespace detail {
+namespace ipcdetail {
 
 template < class T
          , class SegmentManager
          , std::size_t NodesPerBlock = 64
>
 class cached_node_allocator_v1
- : public detail::cached_allocator_impl
+ : public ipcdetail::cached_allocator_impl
          < T
- , detail::shared_node_pool
+ , ipcdetail::shared_node_pool
             < SegmentManager
             , sizeof_value<T>::value
             , NodesPerBlock
@@ -53,9 +53,9 @@
          , 1>
 {
    public:
- typedef detail::cached_allocator_impl
+ typedef ipcdetail::cached_allocator_impl
          < T
- , detail::shared_node_pool
+ , ipcdetail::shared_node_pool
             < SegmentManager
             , sizeof_value<T>::value
             , NodesPerBlock
@@ -84,7 +84,7 @@
    {}
 };
 
-} //namespace detail{
+} //namespace ipcdetail{
 
 /// @endcond
 
@@ -94,9 +94,9 @@
>
 class cached_node_allocator
    /// @cond
- : public detail::cached_allocator_impl
+ : public ipcdetail::cached_allocator_impl
          < T
- , detail::shared_node_pool
+ , ipcdetail::shared_node_pool
             < SegmentManager
             , sizeof_value<T>::value
             , NodesPerBlock
@@ -107,9 +107,9 @@
 
    #ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
    public:
- typedef detail::cached_allocator_impl
+ typedef ipcdetail::cached_allocator_impl
          < T
- , detail::shared_node_pool
+ , ipcdetail::shared_node_pool
             < SegmentManager
             , sizeof_value<T>::value
             , NodesPerBlock
@@ -144,9 +144,9 @@
    typedef implementation_defined::pointer pointer;
    typedef implementation_defined::const_pointer const_pointer;
    typedef T value_type;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename SegmentManager::size_type size_type;
    typedef typename SegmentManager::difference_type difference_type;

Modified: trunk/boost/interprocess/allocators/detail/adaptive_node_pool.hpp
==============================================================================
--- trunk/boost/interprocess/allocators/detail/adaptive_node_pool.hpp (original)
+++ trunk/boost/interprocess/allocators/detail/adaptive_node_pool.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -28,7 +28,7 @@
 #include <boost/interprocess/allocators/detail/allocator_common.hpp>
 #include <cstddef>
 #include <boost/config/no_tr1/cmath.hpp>
-#include <boost/interprocess/containers/container/detail/adaptive_node_pool_impl.hpp>
+#include <boost/container/detail/adaptive_node_pool_impl.hpp>
 #include <boost/assert.hpp>
 
 //!\file
@@ -36,7 +36,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 template< class SegmentManager
         , std::size_t NodeSize
@@ -85,12 +85,12 @@
         , unsigned char OverheadPercent
>
 class shared_adaptive_node_pool
- : public detail::shared_pool_impl
+ : public ipcdetail::shared_pool_impl
       < private_adaptive_node_pool
          <SegmentManager, NodeSize, NodesPerBlock, MaxFreeBlocks, OverheadPercent>
>
 {
- typedef detail::shared_pool_impl
+ typedef ipcdetail::shared_pool_impl
       < private_adaptive_node_pool
          <SegmentManager, NodeSize, NodesPerBlock, MaxFreeBlocks, OverheadPercent>
> base_t;
@@ -100,7 +100,7 @@
    {}
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/allocators/detail/allocator_common.hpp
==============================================================================
--- trunk/boost/interprocess/allocators/detail/allocator_common.hpp (original)
+++ trunk/boost/interprocess/allocators/detail/allocator_common.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -25,7 +25,7 @@
 #include <boost/interprocess/exceptions.hpp> //bad_alloc
 #include <boost/interprocess/sync/scoped_lock.hpp> //scoped_lock
 #include <boost/interprocess/containers/allocation_type.hpp> //boost::interprocess::allocation_type
-#include <boost/interprocess/containers/container/detail/multiallocation_chain.hpp>
+#include <boost/container/detail/multiallocation_chain.hpp>
 #include <boost/interprocess/mem_algo/detail/mem_algo_common.hpp>
 #include <boost/interprocess/detail/segment_manager_helper.hpp>
 #include <algorithm> //std::swap
@@ -67,7 +67,7 @@
    static const std::size_t value = sizeof(void*);
 };
 
-namespace detail {
+namespace ipcdetail {
 
 //!Object function that creates the node allocator if it is not created and
 //!increments reference count if it is already created
@@ -99,7 +99,7 @@
 template<class NodePool>
 inline NodePool *get_or_create_node_pool(typename NodePool::segment_manager *mgnr)
 {
- detail::get_or_create_node_pool_func<NodePool> func(mgnr);
+ ipcdetail::get_or_create_node_pool_func<NodePool> func(mgnr);
    mgnr->atomic_func(func);
    return func.mp_node_pool;
 }
@@ -173,11 +173,11 @@
    ~cache_impl()
    {
       this->deallocate_all_cached_nodes();
- detail::destroy_node_pool_if_last_link(detail::get_pointer(mp_node_pool));
+ ipcdetail::destroy_node_pool_if_last_link(ipcdetail::get_pointer(mp_node_pool));
    }
 
    NodePool *get_node_pool() const
- { return detail::get_pointer(mp_node_pool); }
+ { return ipcdetail::get_pointer(mp_node_pool); }
 
    segment_manager *get_segment_manager() const
    { return mp_node_pool->get_segment_manager(); }
@@ -191,7 +191,7 @@
       if(m_cached_nodes.empty()){
          m_cached_nodes = mp_node_pool->allocate_nodes(m_max_cached_nodes/2);
       }
- void *ret = detail::get_pointer(m_cached_nodes.front());
+ void *ret = ipcdetail::get_pointer(m_cached_nodes.front());
       m_cached_nodes.pop_front();
       return ret;
    }
@@ -203,7 +203,7 @@
       BOOST_TRY{
          //If don't have any cached node, we have to get a new list of free nodes from the pool
          while(!m_cached_nodes.empty() && count--){
- void *ret = detail::get_pointer(m_cached_nodes.front());
+ void *ret = ipcdetail::get_pointer(m_cached_nodes.front());
             m_cached_nodes.pop_front();
             chain.push_back(ret);
             ++allocated;
@@ -296,9 +296,9 @@
    public:
    void swap(cache_impl &other)
    {
- detail::do_swap(mp_node_pool, other.mp_node_pool);
+ ipcdetail::do_swap(mp_node_pool, other.mp_node_pool);
       m_cached_nodes.swap(other.m_cached_nodes);
- detail::do_swap(m_max_cached_nodes, other.m_max_cached_nodes);
+ ipcdetail::do_swap(m_max_cached_nodes, other.m_max_cached_nodes);
    }
 };
 
@@ -318,9 +318,9 @@
    typedef typename boost::
       pointer_to_other<void_pointer, const T>::type const_pointer;
    typedef T value_type;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename SegmentManager::size_type size_type;
    typedef typename SegmentManager::difference_type difference_type;
@@ -334,7 +334,7 @@
    //!allocate, allocation_command and allocate_many.
    size_type size(const pointer &p) const
    {
- return (size_type)this->derived()->get_segment_manager()->size(detail::get_pointer(p))/sizeof(T);
+ return (size_type)this->derived()->get_segment_manager()->size(ipcdetail::get_pointer(p))/sizeof(T);
    }
 
    std::pair<pointer, bool>
@@ -344,7 +344,7 @@
                          size_type &received_size, const pointer &reuse = 0)
    {
       return this->derived()->get_segment_manager()->allocation_command
- (command, limit_size, preferred_size, received_size, detail::get_pointer(reuse));
+ (command, limit_size, preferred_size, received_size, ipcdetail::get_pointer(reuse));
    }
 
    //!Allocates many elements of size elem_size in a contiguous block
@@ -393,12 +393,12 @@
    //!Default construct an object.
    //!Throws if T's default constructor throws
    void construct(const pointer &ptr)
- { new((void*)detail::get_pointer(ptr)) value_type; }
+ { new((void*)ipcdetail::get_pointer(ptr)) value_type; }
 
    //!Copy construct an object
    //!Throws if T's copy constructor throws
    void construct(const pointer &ptr, const_reference v)
- { new((void*)detail::get_pointer(ptr)) value_type(v); }
+ { new((void*)ipcdetail::get_pointer(ptr)) value_type(v); }
 
    //!Destroys object. Throws if object's
    //!destructor throws
@@ -429,9 +429,9 @@
    typedef typename boost::
       pointer_to_other<void_pointer, const T>::type const_pointer;
    typedef T value_type;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename SegmentManager::size_type size_type;
    typedef typename SegmentManager::difference_type difference_type;
@@ -472,9 +472,9 @@
       typedef typename node_pool<0>::type node_pool_t;
       node_pool_t *pool = node_pool<0>::get(this->derived()->get_node_pool());
       if(Version == 1 && count == 1)
- pool->deallocate_node(detail::get_pointer(ptr));
+ pool->deallocate_node(ipcdetail::get_pointer(ptr));
       else
- pool->get_segment_manager()->deallocate((void*)detail::get_pointer(ptr));
+ pool->get_segment_manager()->deallocate((void*)ipcdetail::get_pointer(ptr));
    }
 
    //!Allocates just one object. Memory allocated with this function
@@ -507,7 +507,7 @@
    {
       typedef typename node_pool<0>::type node_pool_t;
       node_pool_t *pool = node_pool<0>::get(this->derived()->get_node_pool());
- pool->deallocate_node(detail::get_pointer(p));
+ pool->deallocate_node(ipcdetail::get_pointer(p));
    }
 
    //!Allocates many elements of size == 1 in a contiguous block
@@ -618,10 +618,10 @@
    {
       (void)count;
       if(Version == 1 && count == 1){
- m_cache.cached_deallocation(detail::get_pointer(ptr));
+ m_cache.cached_deallocation(ipcdetail::get_pointer(ptr));
       }
       else{
- this->get_segment_manager()->deallocate((void*)detail::get_pointer(ptr));
+ this->get_segment_manager()->deallocate((void*)ipcdetail::get_pointer(ptr));
       }
    }
 
@@ -644,7 +644,7 @@
    //!You should never use deallocate_one to deallocate memory allocated
    //!with other functions different from allocate_one(). Never throws
    void deallocate_one(const pointer &p)
- { this->m_cache.cached_deallocation(detail::get_pointer(p)); }
+ { this->m_cache.cached_deallocation(ipcdetail::get_pointer(p)); }
 
    //!Allocates many elements of size == 1 in a contiguous block
    //!of memory. The minimum number to be allocated is min_elements,
@@ -850,7 +850,7 @@
    } m_header;
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/allocators/detail/node_pool.hpp
==============================================================================
--- trunk/boost/interprocess/allocators/detail/node_pool.hpp (original)
+++ trunk/boost/interprocess/allocators/detail/node_pool.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -24,7 +24,7 @@
 
 #include <boost/interprocess/detail/utilities.hpp>
 #include <boost/interprocess/allocators/detail/allocator_common.hpp>
-#include <boost/interprocess/containers/container/detail/node_pool_impl.hpp>
+#include <boost/container/detail/node_pool_impl.hpp>
 #include <cstddef>
 
 
@@ -33,7 +33,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 
 
@@ -86,12 +86,12 @@
         , std::size_t NodesPerBlock
>
 class shared_node_pool
- : public detail::shared_pool_impl
+ : public ipcdetail::shared_pool_impl
       < private_node_pool
          <SegmentManager, NodeSize, NodesPerBlock>
>
 {
- typedef detail::shared_pool_impl
+ typedef ipcdetail::shared_pool_impl
       < private_node_pool
          <SegmentManager, NodeSize, NodesPerBlock>
> base_t;
@@ -101,7 +101,7 @@
    {}
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/allocators/detail/node_tools.hpp
==============================================================================
--- trunk/boost/interprocess/allocators/detail/node_tools.hpp (original)
+++ trunk/boost/interprocess/allocators/detail/node_tools.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -22,7 +22,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 
 template<class VoidPointer>
@@ -41,7 +41,7 @@
       <node_t, bi::linear<true>, bi::base_hook<slist_hook_t> >::type node_slist_t;
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/allocators/node_allocator.hpp
==============================================================================
--- trunk/boost/interprocess/allocators/node_allocator.hpp (original)
+++ trunk/boost/interprocess/allocators/node_allocator.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -26,7 +26,7 @@
 #include <boost/interprocess/detail/utilities.hpp>
 #include <boost/interprocess/detail/type_traits.hpp>
 #include <boost/interprocess/allocators/detail/node_pool.hpp>
-#include <boost/interprocess/containers/container/detail/multiallocation_chain.hpp>
+#include <boost/container/detail/multiallocation_chain.hpp>
 #include <boost/interprocess/exceptions.hpp>
 #include <boost/interprocess/allocators/detail/allocator_common.hpp>
 #include <memory>
@@ -41,7 +41,7 @@
 
 /// @cond
 
-namespace detail{
+namespace ipcdetail{
 
 template < unsigned int Version
          , class T
@@ -68,7 +68,7 @@
    template <int dummy>
    struct node_pool
    {
- typedef detail::shared_node_pool
+ typedef ipcdetail::shared_node_pool
       < SegmentManager, sizeof_value<T>::value, NodesPerBlock> type;
 
       static type *get(void *p)
@@ -85,9 +85,9 @@
    typedef typename boost::
       pointer_to_other<void_pointer, const T>::type const_pointer;
    typedef T value_type;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename segment_manager::size_type size_type;
    typedef typename segment_manager::difference_type difference_type;
@@ -120,14 +120,14 @@
    //!pool. Increments the reference count of the associated node pool.
    //!Can throw boost::interprocess::bad_alloc
    node_allocator_base(segment_manager *segment_mngr)
- : mp_node_pool(detail::get_or_create_node_pool<typename node_pool<0>::type>(segment_mngr)) { }
+ : mp_node_pool(ipcdetail::get_or_create_node_pool<typename node_pool<0>::type>(segment_mngr)) { }
 
    //!Copy constructor from other node_allocator_base. Increments the reference
    //!count of the associated node pool. Never throws
    node_allocator_base(const node_allocator_base &other)
       : mp_node_pool(other.get_node_pool())
    {
- node_pool<0>::get(detail::get_pointer(mp_node_pool))->inc_ref_count();
+ node_pool<0>::get(ipcdetail::get_pointer(mp_node_pool))->inc_ref_count();
    }
 
    //!Copy constructor from related node_allocator_base. If not present, constructs
@@ -136,7 +136,7 @@
    template<class T2>
    node_allocator_base
       (const node_allocator_base<Version, T2, SegmentManager, NodesPerBlock> &other)
- : mp_node_pool(detail::get_or_create_node_pool<typename node_pool<0>::type>(other.get_segment_manager())) { }
+ : mp_node_pool(ipcdetail::get_or_create_node_pool<typename node_pool<0>::type>(other.get_segment_manager())) { }
 
    //!Assignment from other node_allocator_base
    node_allocator_base& operator=(const node_allocator_base &other)
@@ -149,22 +149,22 @@
    //!Destructor, removes node_pool_t from memory
    //!if its reference count reaches to zero. Never throws
    ~node_allocator_base()
- { detail::destroy_node_pool_if_last_link(node_pool<0>::get(detail::get_pointer(mp_node_pool))); }
+ { ipcdetail::destroy_node_pool_if_last_link(node_pool<0>::get(ipcdetail::get_pointer(mp_node_pool))); }
 
    //!Returns a pointer to the node pool.
    //!Never throws
    void* get_node_pool() const
- { return detail::get_pointer(mp_node_pool); }
+ { return ipcdetail::get_pointer(mp_node_pool); }
 
    //!Returns the segment manager.
    //!Never throws
    segment_manager* get_segment_manager()const
- { return node_pool<0>::get(detail::get_pointer(mp_node_pool))->get_segment_manager(); }
+ { return node_pool<0>::get(ipcdetail::get_pointer(mp_node_pool))->get_segment_manager(); }
 
    //!Swaps allocators. Does not throw. If each allocator is placed in a
    //!different memory segment, the result is undefined.
    friend void swap(self_t &alloc1, self_t &alloc2)
- { detail::do_swap(alloc1.mp_node_pool, alloc2.mp_node_pool); }
+ { ipcdetail::do_swap(alloc1.mp_node_pool, alloc2.mp_node_pool); }
 
    /// @cond
    private:
@@ -199,7 +199,7 @@
>
 {
    public:
- typedef detail::node_allocator_base
+ typedef ipcdetail::node_allocator_base
          < 1, T, SegmentManager, NodesPerBlock> base_t;
 
    template<class T2>
@@ -219,7 +219,7 @@
    {}
 };
 
-} //namespace detail{
+} //namespace ipcdetail{
 
 /// @endcond
 
@@ -237,7 +237,7 @@
>
 class node_allocator
    /// @cond
- : public detail::node_allocator_base
+ : public ipcdetail::node_allocator_base
          < 2
          , T
          , SegmentManager
@@ -247,7 +247,7 @@
 {
 
    #ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
- typedef detail::node_allocator_base
+ typedef ipcdetail::node_allocator_base
          < 2, T, SegmentManager, NodesPerBlock> base_t;
    public:
    typedef boost::interprocess::version_type<node_allocator, 2> version;
@@ -275,9 +275,9 @@
    typedef implementation_defined::pointer pointer;
    typedef implementation_defined::const_pointer const_pointer;
    typedef T value_type;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename segment_manager::size_type size_type;
    typedef typename segment_manager::difference_type difference_type;

Modified: trunk/boost/interprocess/allocators/private_adaptive_pool.hpp
==============================================================================
--- trunk/boost/interprocess/allocators/private_adaptive_pool.hpp (original)
+++ trunk/boost/interprocess/allocators/private_adaptive_pool.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -24,7 +24,7 @@
 #include <boost/assert.hpp>
 #include <boost/utility/addressof.hpp>
 #include <boost/interprocess/allocators/detail/adaptive_node_pool.hpp>
-#include <boost/interprocess/containers/container/detail/multiallocation_chain.hpp>
+#include <boost/container/detail/multiallocation_chain.hpp>
 #include <boost/interprocess/exceptions.hpp>
 #include <boost/interprocess/detail/utilities.hpp>
 #include <boost/interprocess/detail/workaround.hpp>
@@ -40,7 +40,7 @@
 
 /// @cond
 
-namespace detail {
+namespace ipcdetail {
 
 template < unsigned int Version
          , class T
@@ -68,7 +68,7 @@
    typedef private_adaptive_pool_base
       < Version, T, SegmentManager, NodesPerBlock
       , MaxFreeBlocks, OverheadPercent> self_t;
- typedef detail::private_adaptive_node_pool
+ typedef ipcdetail::private_adaptive_node_pool
       <SegmentManager
       , sizeof_value<T>::value
       , NodesPerBlock
@@ -86,9 +86,9 @@
    typedef typename boost::
       pointer_to_other<void_pointer, const T>::type const_pointer;
    typedef T value_type;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename segment_manager::size_type size_type;
    typedef typename segment_manager::size_type difference_type;
@@ -110,7 +110,7 @@
    template <int dummy>
    struct node_pool
    {
- typedef detail::private_adaptive_node_pool
+ typedef ipcdetail::private_adaptive_node_pool
       <SegmentManager
       , sizeof_value<T>::value
       , NodesPerBlock
@@ -203,7 +203,7 @@
>
 {
    public:
- typedef detail::private_adaptive_pool_base
+ typedef ipcdetail::private_adaptive_pool_base
          < 1, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent> base_t;
 
    template<class T2>
@@ -223,7 +223,7 @@
    {}
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 
 /// @endcond
 
@@ -248,7 +248,7 @@
>
 class private_adaptive_pool
    /// @cond
- : public detail::private_adaptive_pool_base
+ : public ipcdetail::private_adaptive_pool_base
          < 2
          , T
          , SegmentManager
@@ -260,7 +260,7 @@
 {
 
    #ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
- typedef detail::private_adaptive_pool_base
+ typedef ipcdetail::private_adaptive_pool_base
          < 2, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent> base_t;
    public:
    typedef boost::interprocess::version_type<private_adaptive_pool, 2> version;
@@ -289,9 +289,9 @@
    typedef implementation_defined::pointer pointer;
    typedef implementation_defined::const_pointer const_pointer;
    typedef T value_type;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename segment_manager::size_type size_type;
    typedef typename segment_manager::difference_type difference_type;

Modified: trunk/boost/interprocess/allocators/private_node_allocator.hpp
==============================================================================
--- trunk/boost/interprocess/allocators/private_node_allocator.hpp (original)
+++ trunk/boost/interprocess/allocators/private_node_allocator.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -24,7 +24,7 @@
 #include <boost/assert.hpp>
 #include <boost/utility/addressof.hpp>
 #include <boost/interprocess/allocators/detail/node_pool.hpp>
-#include <boost/interprocess/containers/container/detail/multiallocation_chain.hpp>
+#include <boost/container/detail/multiallocation_chain.hpp>
 #include <boost/interprocess/exceptions.hpp>
 #include <boost/interprocess/detail/utilities.hpp>
 #include <boost/interprocess/detail/workaround.hpp>
@@ -40,7 +40,7 @@
 
 /// @cond
 
-namespace detail {
+namespace ipcdetail {
 
 template < unsigned int Version
          , class T
@@ -64,7 +64,7 @@
    private:
    typedef private_node_allocator_base
       < Version, T, SegmentManager, NodesPerBlock> self_t;
- typedef detail::private_node_pool
+ typedef ipcdetail::private_node_pool
       <SegmentManager
       , sizeof_value<T>::value
       , NodesPerBlock
@@ -80,9 +80,9 @@
    typedef typename boost::
       pointer_to_other<void_pointer, const T>::type const_pointer;
    typedef T value_type;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename segment_manager::size_type size_type;
    typedef typename segment_manager::difference_type difference_type;
@@ -103,7 +103,7 @@
    template <int dummy>
    struct node_pool
    {
- typedef detail::private_node_pool
+ typedef ipcdetail::private_node_pool
       <SegmentManager
       , sizeof_value<T>::value
       , NodesPerBlock
@@ -190,7 +190,7 @@
>
 {
    public:
- typedef detail::private_node_allocator_base
+ typedef ipcdetail::private_node_allocator_base
          < 1, T, SegmentManager, NodesPerBlock> base_t;
 
    template<class T2>
@@ -210,7 +210,7 @@
    {}
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 
 /// @endcond
 
@@ -226,7 +226,7 @@
>
 class private_node_allocator
    /// @cond
- : public detail::private_node_allocator_base
+ : public ipcdetail::private_node_allocator_base
          < 2
          , T
          , SegmentManager
@@ -236,7 +236,7 @@
 {
 
    #ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
- typedef detail::private_node_allocator_base
+ typedef ipcdetail::private_node_allocator_base
          < 2, T, SegmentManager, NodesPerBlock> base_t;
    public:
    typedef boost::interprocess::version_type<private_node_allocator, 2> version;
@@ -265,9 +265,9 @@
    typedef implementation_defined::pointer pointer;
    typedef implementation_defined::const_pointer const_pointer;
    typedef T value_type;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename segment_manager::size_type size_type;
    typedef typename segment_manage::difference_type difference_type;

Modified: trunk/boost/interprocess/anonymous_shared_memory.hpp
==============================================================================
--- trunk/boost/interprocess/anonymous_shared_memory.hpp (original)
+++ trunk/boost/interprocess/anonymous_shared_memory.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -37,7 +37,7 @@
 
 /// @cond
 
-namespace detail{
+namespace ipcdetail{
 
    class raw_mapped_region_creator
    {
@@ -101,7 +101,7 @@
    if(fd != -1)
       close(fd);
 
- return detail::raw_mapped_region_creator::create_posix_mapped_region(address, 0, size);
+ return ipcdetail::raw_mapped_region_creator::create_posix_mapped_region(address, 0, size);
 }
 #else
 {

Modified: trunk/boost/interprocess/containers/allocation_type.hpp
==============================================================================
--- trunk/boost/interprocess/containers/allocation_type.hpp (original)
+++ trunk/boost/interprocess/containers/allocation_type.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/detail/allocation_type.hpp>
+#include <boost/container/detail/allocation_type.hpp>
 
 namespace boost {
 namespace interprocess {

Modified: trunk/boost/interprocess/containers/containers_fwd.hpp
==============================================================================
--- trunk/boost/interprocess/containers/containers_fwd.hpp (original)
+++ trunk/boost/interprocess/containers/containers_fwd.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -22,7 +22,7 @@
 //////////////////////////////////////////////////////////////////////////////
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/container_fwd.hpp>
+#include <boost/container/container_fwd.hpp>
 
 namespace boost {
 namespace interprocess {

Modified: trunk/boost/interprocess/containers/deque.hpp
==============================================================================
--- trunk/boost/interprocess/containers/deque.hpp (original)
+++ trunk/boost/interprocess/containers/deque.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/deque.hpp>
+#include <boost/container/deque.hpp>
 #include <boost/interprocess/containers/containers_fwd.hpp>
 
 namespace boost {

Modified: trunk/boost/interprocess/containers/flat_map.hpp
==============================================================================
--- trunk/boost/interprocess/containers/flat_map.hpp (original)
+++ trunk/boost/interprocess/containers/flat_map.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/flat_map.hpp>
+#include <boost/container/flat_map.hpp>
 #include <boost/interprocess/containers/containers_fwd.hpp>
 
 namespace boost {

Modified: trunk/boost/interprocess/containers/flat_set.hpp
==============================================================================
--- trunk/boost/interprocess/containers/flat_set.hpp (original)
+++ trunk/boost/interprocess/containers/flat_set.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/flat_set.hpp>
+#include <boost/container/flat_set.hpp>
 #include <boost/interprocess/containers/containers_fwd.hpp>
 
 namespace boost {

Modified: trunk/boost/interprocess/containers/list.hpp
==============================================================================
--- trunk/boost/interprocess/containers/list.hpp (original)
+++ trunk/boost/interprocess/containers/list.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/list.hpp>
+#include <boost/container/list.hpp>
 #include <boost/interprocess/containers/containers_fwd.hpp>
 
 namespace boost {

Modified: trunk/boost/interprocess/containers/map.hpp
==============================================================================
--- trunk/boost/interprocess/containers/map.hpp (original)
+++ trunk/boost/interprocess/containers/map.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/map.hpp>
+#include <boost/container/map.hpp>
 #include <boost/interprocess/containers/containers_fwd.hpp>
 
 namespace boost {

Modified: trunk/boost/interprocess/containers/pair.hpp
==============================================================================
--- trunk/boost/interprocess/containers/pair.hpp (original)
+++ trunk/boost/interprocess/containers/pair.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/detail/pair.hpp>
+#include <boost/container/detail/pair.hpp>
 #include <boost/interprocess/containers/containers_fwd.hpp>
 
 namespace boost {

Modified: trunk/boost/interprocess/containers/set.hpp
==============================================================================
--- trunk/boost/interprocess/containers/set.hpp (original)
+++ trunk/boost/interprocess/containers/set.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/set.hpp>
+#include <boost/container/set.hpp>
 #include <boost/interprocess/containers/containers_fwd.hpp>
 
 namespace boost {

Modified: trunk/boost/interprocess/containers/slist.hpp
==============================================================================
--- trunk/boost/interprocess/containers/slist.hpp (original)
+++ trunk/boost/interprocess/containers/slist.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/slist.hpp>
+#include <boost/container/slist.hpp>
 #include <boost/interprocess/containers/containers_fwd.hpp>
 
 namespace boost {

Modified: trunk/boost/interprocess/containers/stable_vector.hpp
==============================================================================
--- trunk/boost/interprocess/containers/stable_vector.hpp (original)
+++ trunk/boost/interprocess/containers/stable_vector.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/stable_vector.hpp>
+#include <boost/container/stable_vector.hpp>
 #include <boost/interprocess/containers/containers_fwd.hpp>
 
 namespace boost {

Modified: trunk/boost/interprocess/containers/string.hpp
==============================================================================
--- trunk/boost/interprocess/containers/string.hpp (original)
+++ trunk/boost/interprocess/containers/string.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/string.hpp>
+#include <boost/container/string.hpp>
 #include <boost/interprocess/containers/containers_fwd.hpp>
 
 namespace boost {

Modified: trunk/boost/interprocess/containers/vector.hpp
==============================================================================
--- trunk/boost/interprocess/containers/vector.hpp (original)
+++ trunk/boost/interprocess/containers/vector.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/vector.hpp>
+#include <boost/container/vector.hpp>
 #include <boost/interprocess/containers/containers_fwd.hpp>
 
 namespace boost {

Modified: trunk/boost/interprocess/containers/version_type.hpp
==============================================================================
--- trunk/boost/interprocess/containers/version_type.hpp (original)
+++ trunk/boost/interprocess/containers/version_type.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -16,7 +16,7 @@
 #endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/containers/container/detail/version_type.hpp>
+#include <boost/container/detail/version_type.hpp>
 
 namespace boost {
 namespace interprocess {

Modified: trunk/boost/interprocess/creation_tags.hpp
==============================================================================
--- trunk/boost/interprocess/creation_tags.hpp (original)
+++ trunk/boost/interprocess/creation_tags.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -61,12 +61,12 @@
 //!be only opened for reading
 static const open_copy_on_write_t open_copy_on_write = open_copy_on_write_t();
 
-namespace detail {
+namespace ipcdetail {
 
 enum create_enum_t
 { DoCreate, DoOpen, DoOpenOrCreate };
 
-} //namespace detail {
+} //namespace ipcdetail {
 
 } //namespace interprocess {
 } //namespace boost {

Modified: trunk/boost/interprocess/detail/atomic.hpp
==============================================================================
--- trunk/boost/interprocess/detail/atomic.hpp (original)
+++ trunk/boost/interprocess/detail/atomic.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -21,7 +21,7 @@
 
 namespace boost{
 namespace interprocess{
-namespace detail{
+namespace ipcdetail{
 
 //! Atomically increment an boost::uint32_t by 1
 //! "mem": pointer to the object
@@ -45,7 +45,7 @@
 inline boost::uint32_t atomic_cas32
    (volatile boost::uint32_t *mem, boost::uint32_t with, boost::uint32_t cmp);
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess{
 } //namespace boost{
 
@@ -55,7 +55,7 @@
 
 namespace boost{
 namespace interprocess{
-namespace detail{
+namespace ipcdetail{
 
 //! Atomically decrement an boost::uint32_t by 1
 //! "mem": pointer to the atomic value
@@ -89,7 +89,7 @@
    (volatile boost::uint32_t *mem, boost::uint32_t with, boost::uint32_t cmp)
 { return winapi::interlocked_compare_exchange(reinterpret_cast<volatile long*>(mem), with, cmp); }
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess{
 } //namespace boost{
 
@@ -97,7 +97,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail{
+namespace ipcdetail{
 
 //! Compare an boost::uint32_t's value with "cmp".
 //! If they are the same swap the value with "with"
@@ -190,7 +190,7 @@
 inline void atomic_write32(volatile boost::uint32_t *mem, boost::uint32_t val)
 { *mem = val; }
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess{
 } //namespace boost{
 
@@ -198,7 +198,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail{
+namespace ipcdetail{
 
 //! Atomically add 'val' to an boost::uint32_t
 //! "mem": pointer to the object
@@ -271,7 +271,7 @@
 inline void atomic_write32(volatile boost::uint32_t *mem, boost::uint32_t val)
 { *mem = val; }
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess{
 } //namespace boost{
 
@@ -279,7 +279,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail{
+namespace ipcdetail{
 
 //! Atomically add 'val' to an boost::uint32_t
 //! "mem": pointer to the object
@@ -321,7 +321,7 @@
 inline void atomic_write32(volatile boost::uint32_t *mem, boost::uint32_t val)
 { *mem = val; }
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess{
 } //namespace boost{
 
@@ -331,7 +331,7 @@
 
 namespace boost{
 namespace interprocess{
-namespace detail{
+namespace ipcdetail{
 
 //! Atomically add 'val' to an boost::uint32_t
 //! "mem": pointer to the object
@@ -372,7 +372,7 @@
 inline void atomic_write32(volatile boost::uint32_t *mem, boost::uint32_t val)
 { *mem = val; }
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess{
 } //namespace boost{
 
@@ -383,7 +383,7 @@
 
 namespace boost{
 namespace interprocess{
-namespace detail{
+namespace ipcdetail{
 
 //! Atomically decrement a uint32_t by 1
 //! "mem": pointer to the atomic value
@@ -467,7 +467,7 @@
     mem, with, cmp);
 }
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess{
 } //namespace boost{
 
@@ -477,7 +477,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail{
+namespace ipcdetail{
 
 //first define boost::uint32_t versions of __lwarx and __stwcx to avoid poluting
 //all the functions with casts
@@ -559,7 +559,7 @@
 inline void atomic_write32(volatile boost::uint32_t *mem, boost::uint32_t val)
 { *mem = val; }
 
-} //namespace detail
+} //namespace ipcdetail
 } //namespace interprocess
 } //namespace boost
 
@@ -571,7 +571,7 @@
 
 namespace boost{
 namespace interprocess{
-namespace detail{
+namespace ipcdetail{
 
 inline bool atomic_add_unless32
    (volatile boost::uint32_t *mem, boost::uint32_t value, boost::uint32_t unless_this)
@@ -583,7 +583,7 @@
    return c != unless_this;
 }
 
-} //namespace detail
+} //namespace ipcdetail
 } //namespace interprocess
 } //namespace boost
 

Modified: trunk/boost/interprocess/detail/cast_tags.hpp
==============================================================================
--- trunk/boost/interprocess/detail/cast_tags.hpp (original)
+++ trunk/boost/interprocess/detail/cast_tags.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -14,14 +14,14 @@
 #include <boost/interprocess/detail/config_begin.hpp>
 #include <boost/interprocess/detail/workaround.hpp>
 
-namespace boost { namespace interprocess { namespace detail {
+namespace boost { namespace interprocess { namespace ipcdetail {
 
 struct static_cast_tag {};
 struct const_cast_tag {};
 struct dynamic_cast_tag {};
 struct reinterpret_cast_tag {};
 
-}}} //namespace boost { namespace interprocess { namespace detail {
+}}} //namespace boost { namespace interprocess { namespace ipcdetail {
 
 #include <boost/interprocess/detail/config_end.hpp>
 

Modified: trunk/boost/interprocess/detail/file_wrapper.hpp
==============================================================================
--- trunk/boost/interprocess/detail/file_wrapper.hpp (original)
+++ trunk/boost/interprocess/detail/file_wrapper.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -20,7 +20,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail{
+namespace ipcdetail{
 
 class file_wrapper
 {
@@ -36,24 +36,24 @@
    //!Creates a file object with name "name" and mode "mode", with the access mode "mode"
    //!If the file previously exists, throws an error.
    file_wrapper(create_only_t, const char *name, mode_t mode, const permissions &perm = permissions())
- { this->priv_open_or_create(detail::DoCreate, name, mode, perm); }
+ { this->priv_open_or_create(ipcdetail::DoCreate, name, mode, perm); }
 
    //!Tries to create a file with name "name" and mode "mode", with the
    //!access mode "mode". If the file previously exists, it tries to open it with mode "mode".
    //!Otherwise throws an error.
    file_wrapper(open_or_create_t, const char *name, mode_t mode, const permissions &perm = permissions())
- { this->priv_open_or_create(detail::DoOpenOrCreate, name, mode, perm); }
+ { this->priv_open_or_create(ipcdetail::DoOpenOrCreate, name, mode, perm); }
 
    //!Tries to open a file with name "name", with the access mode "mode".
    //!If the file does not previously exist, it throws an error.
    file_wrapper(open_only_t, const char *name, mode_t mode)
- { this->priv_open_or_create(detail::DoOpen, name, mode, permissions()); }
+ { this->priv_open_or_create(ipcdetail::DoOpen, name, mode, permissions()); }
 
    //!Moves the ownership of "moved"'s file to *this.
    //!After the call, "moved" does not represent any file.
    //!Does not throw
    file_wrapper(BOOST_RV_REF(file_wrapper) moved)
- : m_handle(file_handle_t(detail::invalid_file()))
+ : m_handle(file_handle_t(ipcdetail::invalid_file()))
    { this->swap(moved); }
 
    //!Moves the ownership of "moved"'s file to *this.
@@ -101,7 +101,7 @@
    //!Closes a previously opened file mapping. Never throws.
    void priv_close();
    //!Closes a previously opened file mapping. Never throws.
- bool priv_open_or_create(detail::create_enum_t type, const char *filename, mode_t mode, const permissions &perm);
+ bool priv_open_or_create(ipcdetail::create_enum_t type, const char *filename, mode_t mode, const permissions &perm);
 
    file_handle_t m_handle;
    mode_t m_mode;
@@ -109,7 +109,7 @@
 };
 
 inline file_wrapper::file_wrapper()
- : m_handle(file_handle_t(detail::invalid_file()))
+ : m_handle(file_handle_t(ipcdetail::invalid_file()))
 {}
 
 inline file_wrapper::~file_wrapper()
@@ -135,7 +135,7 @@
 { return m_mode; }
 
 inline bool file_wrapper::priv_open_or_create
- (detail::create_enum_t type,
+ (ipcdetail::create_enum_t type,
     const char *filename,
     mode_t mode,
     const permissions &perm = permissions())
@@ -149,13 +149,13 @@
 
    //Open file existing native API to obtain the handle
    switch(type){
- case detail::DoOpen:
+ case ipcdetail::DoOpen:
          m_handle = open_existing_file(filename, mode);
       break;
- case detail::DoCreate:
+ case ipcdetail::DoCreate:
          m_handle = create_new_file(filename, mode, perm);
       break;
- case detail::DoOpenOrCreate:
+ case ipcdetail::DoOpenOrCreate:
          m_handle = create_or_open_file(filename, mode, perm);
       break;
       default:
@@ -193,7 +193,7 @@
    }
 }
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/detail/in_place_interface.hpp
==============================================================================
--- trunk/boost/interprocess/detail/in_place_interface.hpp (original)
+++ trunk/boost/interprocess/detail/in_place_interface.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -26,7 +26,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 struct in_place_interface
 {
@@ -66,7 +66,7 @@
 
 }
 }
-} //namespace boost { namespace interprocess { namespace detail {
+} //namespace boost { namespace interprocess { namespace ipcdetail {
 
 #include <boost/interprocess/detail/config_end.hpp>
 

Modified: trunk/boost/interprocess/detail/intermodule_singleton.hpp
==============================================================================
--- trunk/boost/interprocess/detail/intermodule_singleton.hpp (original)
+++ trunk/boost/interprocess/detail/intermodule_singleton.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -51,7 +51,7 @@
 
 namespace boost{
 namespace interprocess{
-namespace detail{
+namespace ipcdetail{
 
 namespace file_locking_helpers {
 
@@ -823,7 +823,7 @@
                break;
             }
             else if(previous_module_singleton_initialized == Initializing){
- detail::thread_yield();
+ ipcdetail::thread_yield();
             }
             else{
                //This can't be happening!
@@ -1026,7 +1026,7 @@
 {};
 
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess{
 } //namespace boost{
 

Modified: trunk/boost/interprocess/detail/interprocess_tester.hpp
==============================================================================
--- trunk/boost/interprocess/detail/interprocess_tester.hpp (original)
+++ trunk/boost/interprocess/detail/interprocess_tester.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -13,7 +13,7 @@
 
 namespace boost{
 namespace interprocess{
-namespace detail{
+namespace ipcdetail{
 
 class interprocess_tester
 {
@@ -23,7 +23,7 @@
    { t.dont_close_on_destruction(); }
 };
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess{
 } //namespace boost{
 

Modified: trunk/boost/interprocess/detail/intersegment_ptr.hpp
==============================================================================
--- trunk/boost/interprocess/detail/intersegment_ptr.hpp (original)
+++ trunk/boost/interprocess/detail/intersegment_ptr.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -153,12 +153,12 @@
    {
       if(orig_size < align)
          orig_size = align;
- orig_size = detail::get_rounded_size_po2(orig_size, align);
- pow = detail::floor_log2(orig_size);
+ orig_size = ipcdetail::get_rounded_size_po2(orig_size, align);
+ pow = ipcdetail::floor_log2(orig_size);
       std::size_t low_size = (std::size_t(1) << pow);
       std::size_t diff = orig_size - low_size;
       BOOST_ASSERT(pow >= frc_size_bits);
- std::size_t rounded = detail::get_rounded_size_po2
+ std::size_t rounded = ipcdetail::get_rounded_size_po2
                               (diff, (std::size_t)(1u << (pow - frc_size_bits)));
       if(rounded == low_size){
          ++pow;
@@ -604,7 +604,7 @@
 
    public:
    typedef T * pointer;
- typedef typename detail::add_reference<T>::type reference;
+ typedef typename ipcdetail::add_reference<T>::type reference;
    typedef T value_type;
    typedef std::ptrdiff_t difference_type;
    typedef std::random_access_iterator_tag iterator_category;
@@ -635,25 +635,25 @@
    //!Emulates static_cast operator.
    //!Never throws.
    template<class U>
- intersegment_ptr(const intersegment_ptr<U> &r, detail::static_cast_tag)
+ intersegment_ptr(const intersegment_ptr<U> &r, ipcdetail::static_cast_tag)
    { base_t::set_from_pointer(static_cast<T*>(r.get())); }
 
    //!Emulates const_cast operator.
    //!Never throws.
    template<class U>
- intersegment_ptr(const intersegment_ptr<U> &r, detail::const_cast_tag)
+ intersegment_ptr(const intersegment_ptr<U> &r, ipcdetail::const_cast_tag)
    { base_t::set_from_pointer(const_cast<T*>(r.get())); }
 
    //!Emulates dynamic_cast operator.
    //!Never throws.
    template<class U>
- intersegment_ptr(const intersegment_ptr<U> &r, detail::dynamic_cast_tag)
+ intersegment_ptr(const intersegment_ptr<U> &r, ipcdetail::dynamic_cast_tag)
    { base_t::set_from_pointer(dynamic_cast<T*>(r.get())); }
 
    //!Emulates reinterpret_cast operator.
    //!Never throws.
    template<class U>
- intersegment_ptr(const intersegment_ptr<U> &r, detail::reinterpret_cast_tag)
+ intersegment_ptr(const intersegment_ptr<U> &r, ipcdetail::reinterpret_cast_tag)
    { base_t::set_from_pointer(reinterpret_cast<T*>(r.get())); }
 
    //!Obtains raw pointer from offset.
@@ -875,25 +875,25 @@
 //!Never throws.
 template<class T, class U> inline
 boost::interprocess::intersegment_ptr<T> static_pointer_cast(const boost::interprocess::intersegment_ptr<U> &r)
-{ return boost::interprocess::intersegment_ptr<T>(r, boost::interprocess::detail::static_cast_tag()); }
+{ return boost::interprocess::intersegment_ptr<T>(r, boost::interprocess::ipcdetail::static_cast_tag()); }
 
 //!Simulation of const_cast between pointers.
 //!Never throws.
 template<class T, class U> inline
 boost::interprocess::intersegment_ptr<T> const_pointer_cast(const boost::interprocess::intersegment_ptr<U> &r)
-{ return boost::interprocess::intersegment_ptr<T>(r, boost::interprocess::detail::const_cast_tag()); }
+{ return boost::interprocess::intersegment_ptr<T>(r, boost::interprocess::ipcdetail::const_cast_tag()); }
 
 //!Simulation of dynamic_cast between pointers.
 //!Never throws.
 template<class T, class U> inline
 boost::interprocess::intersegment_ptr<T> dynamic_pointer_cast(const boost::interprocess::intersegment_ptr<U> &r)
-{ return boost::interprocess::intersegment_ptr<T>(r, boost::interprocess::detail::dynamic_cast_tag()); }
+{ return boost::interprocess::intersegment_ptr<T>(r, boost::interprocess::ipcdetail::dynamic_cast_tag()); }
 
 //!Simulation of reinterpret_cast between pointers.
 //!Never throws.
 template<class T, class U> inline
 boost::interprocess::intersegment_ptr<T> reinterpret_pointer_cast(const boost::interprocess::intersegment_ptr<U> &r)
-{ return boost::interprocess::intersegment_ptr<T>(r, boost::interprocess::detail::reinterpret_cast_tag()); }
+{ return boost::interprocess::intersegment_ptr<T>(r, boost::interprocess::ipcdetail::reinterpret_cast_tag()); }
 
 //!Trait class to detect if an smart pointer has
 //!multi-segment addressing capabilities.

Modified: trunk/boost/interprocess/detail/managed_memory_impl.hpp
==============================================================================
--- trunk/boost/interprocess/detail/managed_memory_impl.hpp (original)
+++ trunk/boost/interprocess/detail/managed_memory_impl.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -43,7 +43,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 template<class BasicManagedMemoryImpl>
 class create_open_func;
@@ -583,7 +583,7 @@
    //!For all theses reasons, classes with throwing destructors are not
    //!recommended for memory.
    template <class T>
- bool destroy(const detail::unique_instance_t *const )
+ bool destroy(const ipcdetail::unique_instance_t *const )
    { return mp_header->template destroy<T>(unique_instance); }
 
    //!Destroys the object (named, unique, or anonymous)
@@ -724,13 +724,13 @@
 class create_open_func
 {
    public:
- create_open_func(BasicManagedMemoryImpl * const frontend, detail::create_enum_t type)
+ create_open_func(BasicManagedMemoryImpl * const frontend, ipcdetail::create_enum_t type)
       : m_frontend(frontend), m_type(type){}
 
    bool operator()(void *addr, typename BasicManagedMemoryImpl::size_type size, bool created) const
    {
- if(((m_type == detail::DoOpen) && created) ||
- ((m_type == detail::DoCreate) && !created))
+ if(((m_type == ipcdetail::DoOpen) && created) ||
+ ((m_type == ipcdetail::DoCreate) && !created))
          return false;
 
       if(created)
@@ -741,10 +741,10 @@
 
    private:
    BasicManagedMemoryImpl *m_frontend;
- detail::create_enum_t m_type;
+ ipcdetail::create_enum_t m_type;
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/detail/managed_multi_shared_memory.hpp
==============================================================================
--- trunk/boost/interprocess/detail/managed_multi_shared_memory.hpp (original)
+++ trunk/boost/interprocess/detail/managed_multi_shared_memory.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -57,17 +57,17 @@
          template<class IndexConfig> class IndexType
>
 class basic_managed_multi_shared_memory
- : public detail::basic_managed_memory_impl
+ : public ipcdetail::basic_managed_memory_impl
          <CharType, MemoryAlgorithm, IndexType>
 {
 
    typedef basic_managed_multi_shared_memory
                <CharType, MemoryAlgorithm, IndexType> self_t;
- typedef detail::basic_managed_memory_impl
+ typedef ipcdetail::basic_managed_memory_impl
       <CharType, MemoryAlgorithm, IndexType> base_t;
    
    typedef typename MemoryAlgorithm::void_pointer void_pointer;
- typedef typename detail::
+ typedef typename ipcdetail::
       managed_open_or_create_impl<shared_memory_object> managed_impl;
    typedef typename void_pointer::segment_group_id segment_group_id;
    typedef typename base_t::size_type size_type;

Modified: trunk/boost/interprocess/detail/managed_open_or_create_impl.hpp
==============================================================================
--- trunk/boost/interprocess/detail/managed_open_or_create_impl.hpp (original)
+++ trunk/boost/interprocess/detail/managed_open_or_create_impl.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -32,7 +32,7 @@
 namespace interprocess {
 
 /// @cond
-namespace detail{ class interprocess_tester; }
+namespace ipcdetail{ class interprocess_tester; }
 
 
 template<class DeviceAbstraction>
@@ -56,7 +56,7 @@
    
 /// @endcond
 
-namespace detail {
+namespace ipcdetail {
 
 
 template <bool StoreDevice, class DeviceAbstraction>
@@ -104,7 +104,7 @@
    public:
    static const std::size_t
       ManagedOpenOrCreateUserOffset =
- detail::ct_rounded_size
+ ipcdetail::ct_rounded_size
             < sizeof(boost::uint32_t)
                         , ::boost::alignment_of< ::boost::detail::max_align >::value >::value;
 
@@ -119,7 +119,7 @@
                  const permissions &perm)
    {
       priv_open_or_create
- ( detail::DoCreate
+ ( ipcdetail::DoCreate
          , id
          , size
          , mode
@@ -134,7 +134,7 @@
                  const void *addr)
    {
       priv_open_or_create
- ( detail::DoOpen
+ ( ipcdetail::DoOpen
          , id
          , 0
          , mode
@@ -152,7 +152,7 @@
                  const permissions &perm)
    {
       priv_open_or_create
- ( detail::DoOpenOrCreate
+ ( ipcdetail::DoOpenOrCreate
          , id
          , size
          , mode
@@ -171,7 +171,7 @@
                  const permissions &perm)
    {
       priv_open_or_create
- (detail::DoCreate
+ (ipcdetail::DoCreate
          , id
          , size
          , mode
@@ -188,7 +188,7 @@
                  const ConstructFunc &construct_func)
    {
       priv_open_or_create
- ( detail::DoOpen
+ ( ipcdetail::DoOpen
          , id
          , 0
          , mode
@@ -207,7 +207,7 @@
                  const permissions &perm)
    {
       priv_open_or_create
- ( detail::DoOpenOrCreate
+ ( ipcdetail::DoOpenOrCreate
          , id
          , size
          , mode
@@ -263,32 +263,32 @@
 
    //These are templatized to allow explicit instantiations
    template<bool dummy>
- static void truncate_device(DeviceAbstraction &, offset_t, detail::false_)
+ static void truncate_device(DeviceAbstraction &, offset_t, ipcdetail::false_)
    {} //Empty
 
    template<bool dummy>
- static void truncate_device(DeviceAbstraction &dev, offset_t size, detail::true_)
+ static void truncate_device(DeviceAbstraction &dev, offset_t size, ipcdetail::true_)
    { dev.truncate(size); }
 
 
    template<bool dummy>
- static bool check_offset_t_size(std::size_t , detail::false_)
+ static bool check_offset_t_size(std::size_t , ipcdetail::false_)
    { return true; } //Empty
 
    template<bool dummy>
- static bool check_offset_t_size(std::size_t size, detail::true_)
+ static bool check_offset_t_size(std::size_t size, ipcdetail::true_)
    { return size == std::size_t(offset_t(size)); }
 
    //These are templatized to allow explicit instantiations
    template<bool dummy>
- static void create_device(DeviceAbstraction &dev, const device_id_t & id, std::size_t size, const permissions &perm, detail::false_)
+ static void create_device(DeviceAbstraction &dev, const device_id_t & id, std::size_t size, const permissions &perm, ipcdetail::false_)
    {
       DeviceAbstraction tmp(create_only, id, read_write, size, perm);
       tmp.swap(dev);
    }
 
    template<bool dummy>
- static void create_device(DeviceAbstraction &dev, const device_id_t & id, std::size_t, const permissions &perm, detail::true_)
+ static void create_device(DeviceAbstraction &dev, const device_id_t & id, std::size_t, const permissions &perm, ipcdetail::true_)
    {
       DeviceAbstraction tmp(create_only, id, read_write, perm);
       tmp.swap(dev);
@@ -296,14 +296,14 @@
 
    template <class ConstructFunc> inline
    void priv_open_or_create
- (detail::create_enum_t type,
+ (ipcdetail::create_enum_t type,
        const device_id_t & id,
        std::size_t size,
        mode_t mode, const void *addr,
        const permissions &perm,
        ConstructFunc construct_func)
    {
- typedef detail::bool_<FileBased> file_like_t;
+ typedef ipcdetail::bool_<FileBased> file_like_t;
       (void)mode;
       error_info err;
       bool created = false;
@@ -311,35 +311,35 @@
       bool cow = false;
       DeviceAbstraction dev;
 
- if(type != detail::DoOpen && size < ManagedOpenOrCreateUserOffset){
+ if(type != ipcdetail::DoOpen && size < ManagedOpenOrCreateUserOffset){
          throw interprocess_exception(error_info(size_error));
       }
       //Check size can be represented by offset_t (used by truncate)
- if(type != detail::DoOpen && !check_offset_t_size<FileBased>(size, file_like_t())){
+ if(type != ipcdetail::DoOpen && !check_offset_t_size<FileBased>(size, file_like_t())){
          throw interprocess_exception(error_info(size_error));
       }
- if(type == detail::DoOpen && mode == read_write){
+ if(type == ipcdetail::DoOpen && mode == read_write){
          DeviceAbstraction tmp(open_only, id, read_write);
          tmp.swap(dev);
          created = false;
       }
- else if(type == detail::DoOpen && mode == read_only){
+ else if(type == ipcdetail::DoOpen && mode == read_only){
          DeviceAbstraction tmp(open_only, id, read_only);
          tmp.swap(dev);
          created = false;
          ronly = true;
       }
- else if(type == detail::DoOpen && mode == copy_on_write){
+ else if(type == ipcdetail::DoOpen && mode == copy_on_write){
          DeviceAbstraction tmp(open_only, id, read_only);
          tmp.swap(dev);
          created = false;
          cow = true;
       }
- else if(type == detail::DoCreate){
+ else if(type == ipcdetail::DoCreate){
          create_device<FileBased>(dev, id, size, perm, file_like_t());
          created = true;
       }
- else if(type == detail::DoOpenOrCreate){
+ else if(type == ipcdetail::DoOpenOrCreate){
          //This loop is very ugly, but brute force is sometimes better
          //than diplomacy. If someone knows how to open or create a
          //file and know if we have really created it or just open it
@@ -369,7 +369,7 @@
                   }
                }
             }
- detail::thread_yield();
+ ipcdetail::thread_yield();
          }
       }
 
@@ -382,7 +382,7 @@
             mapped_region region(dev, read_write, 0, 0, addr);
             boost::uint32_t *patomic_word = 0; //avoid gcc warning
             patomic_word = static_cast<boost::uint32_t*>(region.get_address());
- boost::uint32_t previous = detail::atomic_cas32(patomic_word, InitializingSegment, UninitializedSegment);
+ boost::uint32_t previous = ipcdetail::atomic_cas32(patomic_word, InitializingSegment, UninitializedSegment);
 
             if(previous == UninitializedSegment){
                try{
@@ -391,10 +391,10 @@
                   m_mapped_region.swap(region);
                }
                catch(...){
- detail::atomic_write32(patomic_word, CorruptedSegment);
+ ipcdetail::atomic_write32(patomic_word, CorruptedSegment);
                   throw;
                }
- detail::atomic_write32(patomic_word, InitializedSegment);
+ ipcdetail::atomic_write32(patomic_word, InitializedSegment);
             }
             else if(previous == InitializingSegment || previous == InitializedSegment){
                throw interprocess_exception(error_info(already_exists_error));
@@ -416,10 +416,10 @@
          if(FileBased){
             offset_t filesize = 0;
             while(filesize == 0){
- if(!detail::get_file_size(detail::file_handle_from_mapping_handle(dev.get_mapping_handle()), filesize)){
+ if(!ipcdetail::get_file_size(ipcdetail::file_handle_from_mapping_handle(dev.get_mapping_handle()), filesize)){
                   throw interprocess_exception(error_info(system_error_code()));
                }
- detail::thread_yield();
+ ipcdetail::thread_yield();
             }
             if(filesize == 1){
                throw interprocess_exception(error_info(corrupted_error));
@@ -429,11 +429,11 @@
          mapped_region region(dev, ronly ? read_only : (cow ? copy_on_write : read_write), 0, 0, addr);
 
          boost::uint32_t *patomic_word = static_cast<boost::uint32_t*>(region.get_address());
- boost::uint32_t value = detail::atomic_read32(patomic_word);
+ boost::uint32_t value = ipcdetail::atomic_read32(patomic_word);
 
          while(value == InitializingSegment || value == UninitializedSegment){
- detail::thread_yield();
- value = detail::atomic_read32(patomic_word);
+ ipcdetail::thread_yield();
+ value = ipcdetail::atomic_read32(patomic_word);
          }
 
          if(value != InitializedSegment)
@@ -451,9 +451,9 @@
    }
 
    private:
- friend class detail::interprocess_tester;
+ friend class ipcdetail::interprocess_tester;
    void dont_close_on_destruction()
- { detail::interprocess_tester::dont_close_on_destruction(m_mapped_region); }
+ { ipcdetail::interprocess_tester::dont_close_on_destruction(m_mapped_region); }
 
    mapped_region m_mapped_region;
 };
@@ -463,7 +463,7 @@
                 ,managed_open_or_create_impl<DeviceAbstraction> &y)
 { x.swap(y); }
 
-} //namespace detail {
+} //namespace ipcdetail {
 
 } //namespace interprocess {
 } //namespace boost {

Modified: trunk/boost/interprocess/detail/math_functions.hpp
==============================================================================
--- trunk/boost/interprocess/detail/math_functions.hpp (original)
+++ trunk/boost/interprocess/detail/math_functions.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -21,7 +21,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 // Greatest common divisor and least common multiple
 
@@ -103,7 +103,7 @@
    return log2;
 }
 
-} // namespace detail
+} // namespace ipcdetail
 } // namespace interprocess
 } // namespace boost
 

Modified: trunk/boost/interprocess/detail/mpl.hpp
==============================================================================
--- trunk/boost/interprocess/detail/mpl.hpp (original)
+++ trunk/boost/interprocess/detail/mpl.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -21,7 +21,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 template <class T, T val>
 struct integral_constant
@@ -144,7 +144,7 @@
    static const std::size_t value = 0;
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/detail/named_proxy.hpp
==============================================================================
--- trunk/boost/interprocess/detail/named_proxy.hpp (original)
+++ trunk/boost/interprocess/detail/named_proxy.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -35,14 +35,14 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 #ifdef BOOST_INTERPROCESS_PERFECT_FORWARDING
 
 template<class T, bool is_iterator, class ...Args>
 struct CtorNArg : public placement_destroy<T>
 {
- typedef detail::bool_<is_iterator> IsIterator;
+ typedef ipcdetail::bool_<is_iterator> IsIterator;
    typedef CtorNArg<T, is_iterator, Args...> self_t;
    typedef typename build_number_seq<sizeof...(Args)>::type index_tuple_t;
 
@@ -71,15 +71,15 @@
 
    private:
    template<int ...IdxPack>
- void construct(void *mem, detail::true_, const index_tuple<IdxPack...>&)
+ void construct(void *mem, ipcdetail::true_, const index_tuple<IdxPack...>&)
    { new((void*)mem)T(*boost::interprocess::forward<Args>(get<IdxPack>(args_))...); }
 
    template<int ...IdxPack>
- void construct(void *mem, detail::false_, const index_tuple<IdxPack...>&)
+ void construct(void *mem, ipcdetail::false_, const index_tuple<IdxPack...>&)
    { new((void*)mem)T(boost::interprocess::forward<Args>(get<IdxPack>(args_))...); }
 
    template<int ...IdxPack>
- void do_increment(detail::true_, const index_tuple<IdxPack...>&)
+ void do_increment(ipcdetail::true_, const index_tuple<IdxPack...>&)
    {
       this->expansion_helper(++get<IdxPack>(args_)...);
    }
@@ -89,7 +89,7 @@
    {}
 
    template<int ...IdxPack>
- void do_increment(detail::false_, const index_tuple<IdxPack...>&)
+ void do_increment(ipcdetail::false_, const index_tuple<IdxPack...>&)
    {}
 
    tuple<Args&...> args_;
@@ -163,13 +163,13 @@
 // struct Ctor2Arg
 // : public placement_destroy<T>
 // {
-// typedef detail::bool_<is_iterator> IsIterator;
+// typedef ipcdetail::bool_<is_iterator> IsIterator;
 // typedef Ctor2Arg self_t;
 //
-// void do_increment(detail::false_)
+// void do_increment(ipcdetail::false_)
 // { ++m_p1; ++m_p2; }
 //
-// void do_increment(detail::true_){}
+// void do_increment(ipcdetail::true_){}
 //
 // self_t& operator++()
 // {
@@ -197,10 +197,10 @@
 // }
 //
 // private:
-// void construct(void *mem, detail::true_)
+// void construct(void *mem, ipcdetail::true_)
 // { new((void*)mem)T(*m_p1, *m_p2); }
 //
-// void construct(void *mem, detail::false_)
+// void construct(void *mem, ipcdetail::false_)
 // { new((void*)mem)T(m_p1, m_p2); }
 //
 // P1 &m_p1; P2 &m_p2;
@@ -218,13 +218,13 @@
    struct BOOST_PP_CAT(BOOST_PP_CAT(Ctor, n), Arg) \
       : public placement_destroy<T> \
    { \
- typedef detail::bool_<is_iterator> IsIterator; \
+ typedef ipcdetail::bool_<is_iterator> IsIterator; \
       typedef BOOST_PP_CAT(BOOST_PP_CAT(Ctor, n), Arg) self_t; \
                                                                            \
- void do_increment(detail::true_) \
+ void do_increment(ipcdetail::true_) \
          { BOOST_PP_ENUM(n, BOOST_INTERPROCESS_AUX_PARAM_INC, _); } \
                                                                            \
- void do_increment(detail::false_){} \
+ void do_increment(ipcdetail::false_){} \
                                                                            \
       self_t& operator++() \
       { \
@@ -250,13 +250,13 @@
       } \
                                                                            \
       private: \
- void construct(void *mem, detail::true_) \
+ void construct(void *mem, ipcdetail::true_) \
       { \
          new((void*)mem) T \
          (BOOST_PP_ENUM(n, BOOST_INTERPROCESS_PP_MEMBER_IT_FORWARD, _)); \
       } \
                                                                            \
- void construct(void *mem, detail::false_) \
+ void construct(void *mem, ipcdetail::false_) \
       { \
          new((void*)mem) T \
             (BOOST_PP_ENUM(n, BOOST_INTERPROCESS_PP_MEMBER_FORWARD, _)); \
@@ -342,7 +342,7 @@
 
 #endif //#ifdef BOOST_INTERPROCESS_PERFECT_FORWARDING
 
-}}} //namespace boost { namespace interprocess { namespace detail {
+}}} //namespace boost { namespace interprocess { namespace ipcdetail {
 
 #include <boost/interprocess/detail/config_end.hpp>
 

Modified: trunk/boost/interprocess/detail/os_file_functions.hpp
==============================================================================
--- trunk/boost/interprocess/detail/os_file_functions.hpp (original)
+++ trunk/boost/interprocess/detail/os_file_functions.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -17,6 +17,7 @@
 #include <boost/interprocess/permissions.hpp>
 
 #include <string>
+#include <limits>
 
 #if (defined BOOST_INTERPROCESS_WINDOWS)
 # include <boost/interprocess/detail/win32_api.hpp>
@@ -64,7 +65,7 @@
              , file_current = winapi::file_current
              } file_pos_t;
 
-namespace detail{
+namespace ipcdetail{
 
 inline mapping_handle_t mapping_handle_from_file_handle(file_handle_t hnd)
 {
@@ -127,6 +128,11 @@
    if(!winapi::get_file_size(hnd, filesize))
       return false;
 
+ if(size > (std::numeric_limits<offset_t>::max)()){
+ winapi::set_last_error(winapi::error_file_too_large);
+ return false;
+ }
+
    if(size > (unsigned long long)filesize){
       if(!winapi::set_file_pointer_ex(hnd, filesize, 0, winapi::file_begin)){
          return false;
@@ -365,7 +371,7 @@
              , file_current = SEEK_CUR
              } file_pos_t;
 
-namespace detail{
+namespace ipcdetail{
 
 inline mapping_handle_t mapping_handle_from_file_handle(file_handle_t hnd)
 {
@@ -438,7 +444,13 @@
 { return ::unlink(name) == 0; }
 
 inline bool truncate_file (file_handle_t hnd, std::size_t size)
-{ return 0 == ::ftruncate(hnd, size); }
+{
+ if(off_t(size) < 0){
+ errno = EINVAL;
+ return false;
+ }
+ return 0 == ::ftruncate(hnd, size);
+}
 
 inline bool get_file_size(file_handle_t hnd, offset_t &size)
 {
@@ -669,7 +681,7 @@
 }
 
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/detail/os_thread_functions.hpp
==============================================================================
--- trunk/boost/interprocess/detail/os_thread_functions.hpp (original)
+++ trunk/boost/interprocess/detail/os_thread_functions.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -30,7 +30,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail{
+namespace ipcdetail{
 
 #if (defined BOOST_INTERPROCESS_WINDOWS)
 
@@ -192,7 +192,7 @@
 inline void get_pid_str(pid_str_t &pid_str)
 { get_pid_str(pid_str, get_current_process_id()); }
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/detail/pointer_type.hpp
==============================================================================
--- trunk/boost/interprocess/detail/pointer_type.hpp (original)
+++ trunk/boost/interprocess/detail/pointer_type.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -24,7 +24,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 struct two {char _[2];};
 
@@ -61,10 +61,10 @@
 struct pointer_type
 {
     typedef typename pointer_type_imp::pointer_type<T,
- typename detail::remove_reference<D>::type>::type type;
+ typename ipcdetail::remove_reference<D>::type>::type type;
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/detail/preprocessor.hpp
==============================================================================
--- trunk/boost/interprocess/detail/preprocessor.hpp (original)
+++ trunk/boost/interprocess/detail/preprocessor.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -110,7 +110,7 @@
 
 #if !defined(BOOST_NO_RVALUE_REFERENCES) && defined(BOOST_MOVE_MSVC_10_MEMBER_RVALUE_REF_BUG)
 
-#include <boost/interprocess/containers/container/detail/stored_ref.hpp>
+#include <boost/container/detail/stored_ref.hpp>
 
 #define BOOST_INTERPROCESS_PP_MEMBER_FORWARD(z, n, data) \
 ::boost::container::containers_detail::stored_ref< BOOST_PP_CAT(P, n) >::forward( BOOST_PP_CAT(m_p, n) ) \

Modified: trunk/boost/interprocess/detail/robust_emulation.hpp
==============================================================================
--- trunk/boost/interprocess/detail/robust_emulation.hpp (original)
+++ trunk/boost/interprocess/detail/robust_emulation.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -28,7 +28,7 @@
 
 namespace boost{
 namespace interprocess{
-namespace detail{
+namespace ipcdetail{
 
 namespace robust_emulation_helpers {
 
@@ -236,7 +236,7 @@
       }
       else{
          //Do the dead owner checking each spin_threshold lock tries
- detail::thread_yield();
+ ipcdetail::thread_yield();
          ++spin_count;
          if(spin_count > spin_threshold){
             //Check if owner dead and take ownership if possible
@@ -302,7 +302,7 @@
          return this->try_lock();
       }
       // relinquish current time slice
- detail::thread_yield();
+ ipcdetail::thread_yield();
    }while (true);
 
    return true;
@@ -425,12 +425,12 @@
 {
    //This function forces instantiation of the singleton
    robust_emulation_helpers::robust_mutex_lock_file* dummy =
- &detail::intermodule_singleton
+ &ipcdetail::intermodule_singleton
          <robust_emulation_helpers::robust_mutex_lock_file>::get();
    return dummy != 0;
 }
 
-} //namespace detail{
+} //namespace ipcdetail{
 } //namespace interprocess{
 } //namespace boost{
 

Modified: trunk/boost/interprocess/detail/segment_manager_helper.hpp
==============================================================================
--- trunk/boost/interprocess/detail/segment_manager_helper.hpp (original)
+++ trunk/boost/interprocess/detail/segment_manager_helper.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -51,7 +51,7 @@
 //!instance constructed in memory
 enum instance_type { anonymous_type, named_type, unique_type, max_allocation_type };
 
-namespace detail{
+namespace ipcdetail{
 
 template<class MemoryAlgorithm>
 class mem_algo_deallocator
@@ -207,7 +207,7 @@
    }
 };
 
-inline void array_construct(void *mem, std::size_t num, detail::in_place_interface &table)
+inline void array_construct(void *mem, std::size_t num, ipcdetail::in_place_interface &table)
 {
    //Try constructors
    std::size_t constructed = 0;
@@ -281,7 +281,7 @@
    {
       return const_cast<block_header<size_type>*>
          (reinterpret_cast<const block_header<size_type> *>(reinterpret_cast<const char*>(this) +
- ::boost::interprocess::detail::get_rounded_size(size_type(sizeof(*this)), size_type(BlockHdrAlignment))));
+ ::boost::interprocess::ipcdetail::get_rounded_size(size_type(sizeof(*this)), size_type(BlockHdrAlignment))));
    }
 
    bool operator <(const intrusive_value_type_impl<Hook, CharType, SizeType> & other) const
@@ -314,11 +314,11 @@
       : m_name(name)
    {}
 
- char_ptr_holder(const detail::anonymous_instance_t *)
+ char_ptr_holder(const ipcdetail::anonymous_instance_t *)
       : m_name(static_cast<CharType*>(0))
    {}
 
- char_ptr_holder(const detail::unique_instance_t *)
+ char_ptr_holder(const ipcdetail::unique_instance_t *)
       : m_name(reinterpret_cast<CharType*>(-1))
    {}
 
@@ -357,8 +357,8 @@
       return (m_len < right.m_len) ||
                (m_len == right.m_len &&
                std::char_traits<char_type>::compare
- (detail::get_pointer(mp_str)
- ,detail::get_pointer(right.mp_str), m_len) < 0);
+ (ipcdetail::get_pointer(mp_str)
+ ,ipcdetail::get_pointer(right.mp_str), m_len) < 0);
    }
 
    //!Equal to function for index ordering
@@ -366,8 +366,8 @@
    {
       return m_len == right.m_len &&
                std::char_traits<char_type>::compare
- (detail::get_pointer(mp_str),
- detail::get_pointer(right.mp_str), m_len) == 0;
+ (ipcdetail::get_pointer(mp_str),
+ ipcdetail::get_pointer(right.mp_str), m_len) == 0;
    }
 
    void name(const CharT *name)
@@ -377,7 +377,7 @@
    { m_len = len; }
 
    const CharT *name() const
- { return detail::get_pointer(mp_str); }
+ { return ipcdetail::get_pointer(mp_str); }
 
    size_type name_length() const
    { return m_len; }
@@ -393,7 +393,7 @@
    index_data(void *ptr) : m_ptr(ptr){}
 
    void *value() const
- { return static_cast<void*>(detail::get_pointer(m_ptr)); }
+ { return static_cast<void*>(ipcdetail::get_pointer(m_ptr)); }
 };
 
 template<class MemoryAlgorithm>
@@ -405,14 +405,14 @@
 {
    typedef typename MemoryAlgorithm::void_pointer void_pointer;
    typedef CharT char_type;
- typedef detail::index_key<CharT, void_pointer> key_type;
- typedef detail::index_data<void_pointer> mapped_type;
+ typedef ipcdetail::index_key<CharT, void_pointer> key_type;
+ typedef ipcdetail::index_data<void_pointer> mapped_type;
    typedef typename segment_manager_base_type
       <MemoryAlgorithm>::type segment_manager_base;
 
    template<class HeaderBase>
    struct intrusive_value_type
- { typedef detail::intrusive_value_type_impl<HeaderBase, CharT, typename segment_manager_base::size_type> type; };
+ { typedef ipcdetail::intrusive_value_type_impl<HeaderBase, CharT, typename segment_manager_base::size_type> type; };
 
    typedef intrusive_compare_key<CharT> intrusive_compare_key_type;
 };
@@ -464,7 +464,7 @@
    const void *value() const
    {
       return reinterpret_cast<block_header<size_type>*>
- (detail::get_pointer(m_val->second.m_ptr))->value();
+ (ipcdetail::get_pointer(m_val->second.m_ptr))->value();
    }
 
    const typename Iterator::value_type *m_val;
@@ -481,14 +481,14 @@
    { return result_type(arg); }
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 
 //These pointers are the ones the user will use to
 //indicate previous allocation types
-static const detail::anonymous_instance_t * anonymous_instance = 0;
-static const detail::unique_instance_t * unique_instance = 0;
+static const ipcdetail::anonymous_instance_t * anonymous_instance = 0;
+static const ipcdetail::unique_instance_t * unique_instance = 0;
 
-namespace detail_really_deep_namespace {
+namespace ipcdetail_really_deep_namespace {
 
 //Otherwise, gcc issues a warning of previously defined
 //anonymous_instance and unique_instance

Modified: trunk/boost/interprocess/detail/tmp_dir_helpers.hpp
==============================================================================
--- trunk/boost/interprocess/detail/tmp_dir_helpers.hpp (original)
+++ trunk/boost/interprocess/detail/tmp_dir_helpers.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -32,7 +32,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 #if defined (BOOST_INTERPROCESS_HAS_WINDOWS_KERNEL_BOOTTIME)
 inline void get_bootstamp(std::string &s, bool add = false)
@@ -166,7 +166,7 @@
 
 } //namespace boost{
 } //namespace interprocess {
-} //namespace detail {
+} //namespace ipcdetail {
 
 #include <boost/interprocess/detail/config_end.hpp>
 

Modified: trunk/boost/interprocess/detail/transform_iterator.hpp
==============================================================================
--- trunk/boost/interprocess/detail/transform_iterator.hpp (original)
+++ trunk/boost/interprocess/detail/transform_iterator.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -62,7 +62,7 @@
    : public UnaryFunction
    , public std::iterator
       < typename Iterator::iterator_category
- , typename detail::remove_reference<typename UnaryFunction::result_type>::type
+ , typename ipcdetail::remove_reference<typename UnaryFunction::result_type>::type
       , typename Iterator::difference_type
       , operator_arrow_proxy<typename UnaryFunction::result_type>
       , typename UnaryFunction::result_type>

Modified: trunk/boost/interprocess/detail/type_traits.hpp
==============================================================================
--- trunk/boost/interprocess/detail/type_traits.hpp (original)
+++ trunk/boost/interprocess/detail/type_traits.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -21,7 +21,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 struct nat{};
 
@@ -112,7 +112,7 @@
    static const bool value = sizeof(yes_type) == sizeof(is_same_tester(t,u));
 };
 
-} // namespace detail
+} // namespace ipcdetail
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/detail/utilities.hpp
==============================================================================
--- trunk/boost/interprocess/detail/utilities.hpp (original)
+++ trunk/boost/interprocess/detail/utilities.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -35,7 +35,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 template<class SmartPtr>
 struct smart_ptr_type
@@ -119,7 +119,7 @@
    static const std::size_t value = 0;
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 
 //!Trait class to detect if an index is a node
 //!index. This allows more efficient operations

Modified: trunk/boost/interprocess/detail/variadic_templates_tools.hpp
==============================================================================
--- trunk/boost/interprocess/detail/variadic_templates_tools.hpp (original)
+++ trunk/boost/interprocess/detail/variadic_templates_tools.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -22,7 +22,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 template<typename... Values>
 class tuple;
@@ -146,7 +146,7 @@
 { typedef index_tuple<Indexes...> type; };
 
 
-}}} //namespace boost { namespace interprocess { namespace detail {
+}}} //namespace boost { namespace interprocess { namespace ipcdetail {
 
 #include <boost/interprocess/detail/config_end.hpp>
 

Modified: trunk/boost/interprocess/detail/win32_api.hpp
==============================================================================
--- trunk/boost/interprocess/detail/win32_api.hpp (original)
+++ trunk/boost/interprocess/detail/win32_api.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -51,6 +51,7 @@
 //Retries in CreateFile, see http://support.microsoft.com/kb/316609
 static const unsigned int error_sharing_violation_tries = 3u;
 static const unsigned int error_sharing_violation_sleep_ms = 250u;
+static const unsigned int error_file_too_large = 223u;
 
 static const unsigned long semaphore_all_access = (0x000F0000L)|(0x00100000L)|0x3;
 static const unsigned long mutex_all_access = (0x000F0000L)|(0x00100000L)|0x0001;
@@ -790,6 +791,7 @@
    , interprocess_filetime *lpUserTime );
 extern "C" __declspec(dllimport) void __stdcall Sleep(unsigned long);
 extern "C" __declspec(dllimport) unsigned long __stdcall GetLastError();
+extern "C" __declspec(dllimport) void __stdcall SetLastError(unsigned long);
 extern "C" __declspec(dllimport) void * __stdcall GetCurrentProcess();
 extern "C" __declspec(dllimport) int __stdcall CloseHandle(void*);
 extern "C" __declspec(dllimport) int __stdcall DuplicateHandle
@@ -899,6 +901,9 @@
 inline unsigned long get_last_error()
 { return GetLastError(); }
 
+inline void set_last_error(unsigned long err)
+{ return SetLastError(err); }
+
 inline unsigned long format_message
    (unsigned long dwFlags, const void *lpSource,
     unsigned long dwMessageId, unsigned long dwLanguageId,

Modified: trunk/boost/interprocess/detail/workaround.hpp
==============================================================================
--- trunk/boost/interprocess/detail/workaround.hpp (original)
+++ trunk/boost/interprocess/detail/workaround.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -138,6 +138,11 @@
 
 #endif
 
+// Timeout duration use if BOOST_INTERPROCESS_ENABLE_TIMEOUT_WHEN_LOCKING is set
+#ifndef BOOST_INTERPROCESS_TIMEOUT_WHEN_LOCKING_DURATION_MS
+#define BOOST_INTERPROCESS_TIMEOUT_WHEN_LOCKING_DURATION_MS 10000
+#endif
+
 #include <boost/interprocess/detail/config_end.hpp>
 
 #endif //#ifndef BOOST_INTERPROCESS_DETAIL_WORKAROUND_HPP

Modified: trunk/boost/interprocess/detail/xsi_shared_memory_device.hpp
==============================================================================
--- trunk/boost/interprocess/detail/xsi_shared_memory_device.hpp (original)
+++ trunk/boost/interprocess/detail/xsi_shared_memory_device.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -53,22 +53,22 @@
    xsi_shared_memory_device();
 
    xsi_shared_memory_device(create_only_t, const char *name, mode_t mode, std::size_t size)
- { this->priv_open_or_create_name_only(detail::DoCreate, name, mode, size); }
+ { this->priv_open_or_create_name_only(ipcdetail::DoCreate, name, mode, size); }
 
    xsi_shared_memory_device(open_or_create_t, const char *name, mode_t mode, std::size_t size)
- { this->priv_open_or_create_name_only(detail::DoOpenOrCreate, name, mode, size); }
+ { this->priv_open_or_create_name_only(ipcdetail::DoOpenOrCreate, name, mode, size); }
 
    xsi_shared_memory_device(open_only_t, const char *name, mode_t mode)
- { this->priv_open_or_create_name_only(detail::DoOpen, name, mode, 0); }
+ { this->priv_open_or_create_name_only(ipcdetail::DoOpen, name, mode, 0); }
 
    xsi_shared_memory_device(create_only_t, const char *filepath, boost::uint8_t id, mode_t mode, std::size_t size)
- { this->priv_open_or_create_name_id(detail::DoCreate, name, id, mode, size); }
+ { this->priv_open_or_create_name_id(ipcdetail::DoCreate, name, id, mode, size); }
 
    xsi_shared_memory_device(open_or_create_t, const char *filepath, boost::uint8_t id, mode_t mode, std::size_t size)
- { this->priv_open_or_create_name_id(detail::DoOpenOrCreate, id, name, mode, size); }
+ { this->priv_open_or_create_name_id(ipcdetail::DoOpenOrCreate, id, name, mode, size); }
 
    xsi_shared_memory_device(open_only_t, const char *filepath, boost::uint8_t id, mode_t mode)
- { this->priv_open_or_create_name_id(detail::DoOpen, name, id, mode, 0); }
+ { this->priv_open_or_create_name_id(ipcdetail::DoOpen, name, id, mode, 0); }
 
    xsi_shared_memory_device(BOOST_RV_REF(xsi_shared_memory_device) moved)
    { this->swap(moved); }
@@ -135,11 +135,11 @@
    static void priv_obtain_index(mapped_region &m, xsi_named_mutex &m, std::string &path);
    static bool priv_remove_dead_memory(info_t *info, const char *path);
 
- bool priv_open_or_create_name_only( detail::create_enum_t type
+ bool priv_open_or_create_name_only( ipcdetail::create_enum_t type
                            , const char *shmname
                            , mode_t mode
                            , std::size_t size);
- bool priv_open_or_create_name_id( detail::create_enum_t type
+ bool priv_open_or_create_name_id( ipcdetail::create_enum_t type
                            , const char *shmname
                            , boost::uint8_t id
                            , mode_t mode
@@ -197,8 +197,8 @@
    permissions p;
    p.set_unrestricted();
    std::string xsi_shm_emulation_file_path;
- detail::create_tmp_and_clean_old_and_get_filename(filename, xsi_shm_emulation_file_path);
- detail::create_or_open_file(xsi_shm_emulation_file_path.c_str(), read_write, p);
+ ipcdetail::create_tmp_and_clean_old_and_get_filename(filename, xsi_shm_emulation_file_path);
+ ipcdetail::create_or_open_file(xsi_shm_emulation_file_path.c_str(), read_write, p);
    const std::size_t MemSize = sizeof(info_t);
 
    xsi_shared_memory index_shm(open_or_create, xsi_shm_emulation_file_path.c_str(), 1, MemSize, 0666);
@@ -230,7 +230,7 @@
 }
 
 inline bool xsi_shared_memory_device::priv_open_or_create_name_id
- (detail::create_enum_t type, const char *filepath, mode_t mode, std::size_t size)
+ (ipcdetail::create_enum_t type, const char *filepath, mode_t mode, std::size_t size)
 {
    //Set accesses
    if (mode != read_write && mode != read_only){
@@ -240,7 +240,7 @@
 
    int perm = (mode == read_only) ? (0444) : (0666);
 
- if(type == detail::DoOpen){
+ if(type == ipcdetail::DoOpen){
       if(!found){
          error_info err = not_found_error;
          throw interprocess_exception(err);
@@ -248,13 +248,13 @@
       xsi_shared_memory temp(open_only, filepath, id, perm);
       m_shm = boost::interprocess::move(temp);
    }
- else if(type == detail::DoCreate){
+ else if(type == ipcdetail::DoCreate){
       //Try to reuse slot
       xsi_shared_memory temp(create_only, filepath, id, size, perm);
       std::strcpy(info->names[target_entry].buf, shmname);
       m_shm = boost::interprocess::move(temp);
    }
- else{ // if(type == detail::DoOpenOrCreate){
+ else{ // if(type == ipcdetail::DoOpenOrCreate){
       xsi_shared_memory temp(open_or_create, filepath, id, size, perm);
       m_shm = boost::interprocess::move(temp);
    }
@@ -265,7 +265,7 @@
 }
 
 inline bool xsi_shared_memory_device::priv_open_or_create_name_only
- (detail::create_enum_t type, const char *shmname, mode_t mode, std::size_t size)
+ (ipcdetail::create_enum_t type, const char *shmname, mode_t mode, std::size_t size)
 {
    //Set accesses
    if (mode != read_write && mode != read_only){
@@ -311,7 +311,7 @@
       }
       //Now handle the result
       int perm = (mode == read_only) ? (0444) : (0666);
- if(type == detail::DoOpen){
+ if(type == ipcdetail::DoOpen){
          if(!found){
             error_info err = not_found_error;
             throw interprocess_exception(err);
@@ -322,14 +322,14 @@
       }
       else{
 
- if(type == detail::DoCreate){
+ if(type == ipcdetail::DoCreate){
             //Try to reuse slot
             xsi_shared_memory temp( create_only, xsi_shm_emulation_file_path.c_str()
                                   , target_entry+info_constants_t<0>::FirstID, size, perm);
             std::strcpy(info->names[target_entry].buf, shmname);
             m_shm = boost::interprocess::move(temp);
          }
- else{ // if(type == detail::DoOpenOrCreate){
+ else{ // if(type == ipcdetail::DoOpenOrCreate){
             xsi_shared_memory temp( open_or_create, xsi_shm_emulation_file_path.c_str()
                                   , target_entry+info_constants_t<0>::FirstID, size, perm);
             if(!found){

Modified: trunk/boost/interprocess/errors.hpp
==============================================================================
--- trunk/boost/interprocess/errors.hpp (original)
+++ trunk/boost/interprocess/errors.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -112,7 +112,8 @@
    size_error,
    corrupted_error,
    not_such_file_or_directory,
- invalid_argument
+ invalid_argument,
+ timeout_when_locking_error,
 };
 
 typedef int native_error_t;

Modified: trunk/boost/interprocess/file_mapping.hpp
==============================================================================
--- trunk/boost/interprocess/file_mapping.hpp (original)
+++ trunk/boost/interprocess/file_mapping.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -51,7 +51,7 @@
    //!After the call, "moved" does not represent any file mapping object.
    //!Does not throw
    file_mapping(BOOST_RV_REF(file_mapping) moved)
- : m_handle(file_handle_t(detail::invalid_file()))
+ : m_handle(file_handle_t(ipcdetail::invalid_file()))
    { this->swap(moved); }
 
    //!Moves the ownership of "moved"'s file mapping to *this.
@@ -101,7 +101,7 @@
 };
 
 inline file_mapping::file_mapping()
- : m_handle(file_handle_t(detail::invalid_file()))
+ : m_handle(file_handle_t(ipcdetail::invalid_file()))
 {}
 
 inline file_mapping::~file_mapping()
@@ -118,7 +118,7 @@
 }
 
 inline mapping_handle_t file_mapping::get_mapping_handle() const
-{ return detail::mapping_handle_from_file_handle(m_handle); }
+{ return ipcdetail::mapping_handle_from_file_handle(m_handle); }
 
 inline mode_t file_mapping::get_mode() const
 { return m_mode; }
@@ -134,10 +134,10 @@
    }
 
    //Open file
- m_handle = detail::open_existing_file(filename, mode);
+ m_handle = ipcdetail::open_existing_file(filename, mode);
 
    //Check for error
- if(m_handle == detail::invalid_file()){
+ if(m_handle == ipcdetail::invalid_file()){
       error_info err = system_error_code();
       this->priv_close();
       throw interprocess_exception(err);
@@ -146,15 +146,15 @@
 }
 
 inline bool file_mapping::remove(const char *filename)
-{ return detail::delete_file(filename); }
+{ return ipcdetail::delete_file(filename); }
 
 ///@cond
 
 inline void file_mapping::priv_close()
 {
- if(m_handle != detail::invalid_file()){
- detail::close_file(m_handle);
- m_handle = detail::invalid_file();
+ if(m_handle != ipcdetail::invalid_file()){
+ ipcdetail::close_file(m_handle);
+ m_handle = ipcdetail::invalid_file();
    }
 }
 
@@ -173,7 +173,7 @@
    {}
 
    ~remove_file_on_destroy()
- { detail::delete_file(m_name); }
+ { ipcdetail::delete_file(m_name); }
 };
 
 } //namespace interprocess {

Modified: trunk/boost/interprocess/indexes/iunordered_set_index.hpp
==============================================================================
--- trunk/boost/interprocess/indexes/iunordered_set_index.hpp (original)
+++ trunk/boost/interprocess/indexes/iunordered_set_index.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -84,7 +84,7 @@
     {
         std::size_t operator()(const value_type &val) const
         {
- const char_type *beg = detail::get_pointer(val.name()),
+ const char_type *beg = ipcdetail::get_pointer(val.name()),
                             *end = beg + val.name_length();
             return boost::hash_range(beg, end);
         }
@@ -181,8 +181,8 @@
          return old_size;
       }
 
- for( bucket_type *p = detail::get_pointer(buckets) + received_size
- , *pend = detail::get_pointer(buckets) + old_size
+ for( bucket_type *p = ipcdetail::get_pointer(buckets) + received_size
+ , *pend = ipcdetail::get_pointer(buckets) + old_size
          ; p != pend
          ; ++p){
          p->~bucket_type();

Modified: trunk/boost/interprocess/indexes/map_index.hpp
==============================================================================
--- trunk/boost/interprocess/indexes/map_index.hpp (original)
+++ trunk/boost/interprocess/indexes/map_index.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -25,7 +25,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail{
+namespace ipcdetail{
 
 //!Helper class to define typedefs from IndexTraits
 template <class MapConfig>
@@ -46,17 +46,17 @@
        key_less, allocator_type> index_t;
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 
 //!Index type based in boost::interprocess::map. Just derives from boost::interprocess::map
 //!and defines the interface needed by managed memory segments
 template <class MapConfig>
 class map_index
    //Derive class from map specialization
- : public detail::map_index_aux<MapConfig>::index_t
+ : public ipcdetail::map_index_aux<MapConfig>::index_t
 {
    /// @cond
- typedef detail::map_index_aux<MapConfig> index_aux;
+ typedef ipcdetail::map_index_aux<MapConfig> index_aux;
    typedef typename index_aux::index_t base_type;
    typedef typename MapConfig::
       segment_manager_base segment_manager_base;

Modified: trunk/boost/interprocess/indexes/unordered_map_index.hpp
==============================================================================
--- trunk/boost/interprocess/indexes/unordered_map_index.hpp (original)
+++ trunk/boost/interprocess/indexes/unordered_map_index.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -48,7 +48,7 @@
         std::size_t operator()(const key_type &val) const
         {
             typedef typename key_type::char_type char_type;
- const char_type *beg = detail::get_pointer(val.mp_str),
+ const char_type *beg = ipcdetail::get_pointer(val.mp_str),
                             *end = beg + val.m_len;
             return boost::hash_range(beg, end);
         }

Modified: trunk/boost/interprocess/ipc/message_queue.hpp
==============================================================================
--- trunk/boost/interprocess/ipc/message_queue.hpp (original)
+++ trunk/boost/interprocess/ipc/message_queue.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -173,13 +173,13 @@
    //!Never throws
    static size_type get_mem_size(size_type max_msg_size, size_type max_num_msg);
 
- detail::managed_open_or_create_impl<shared_memory_object> m_shmem;
+ ipcdetail::managed_open_or_create_impl<shared_memory_object> m_shmem;
    /// @endcond
 };
 
 /// @cond
 
-namespace detail {
+namespace ipcdetail {
 
 //!This header is the prefix of each message in the queue
 template<class VoidPointer>
@@ -245,7 +245,7 @@
 //! the index structure.
 template<class VoidPointer>
 class mq_hdr_t
- : public detail::priority_functor<VoidPointer>
+ : public ipcdetail::priority_functor<VoidPointer>
 {
    typedef VoidPointer void_pointer;
    typedef msg_hdr_t<void_pointer> msg_header;
@@ -312,11 +312,11 @@
       const size_type
                  msg_hdr_align = ::boost::alignment_of<msg_header>::value,
                  index_align = ::boost::alignment_of<msg_hdr_ptr_t>::value,
- r_hdr_size = detail::ct_rounded_size<sizeof(mq_hdr_t), index_align>::value,
- r_index_size = detail::get_rounded_size(sizeof(msg_hdr_ptr_t)*max_num_msg, msg_hdr_align),
- r_max_msg_size = detail::get_rounded_size(max_msg_size, msg_hdr_align) + sizeof(msg_header);
+ r_hdr_size = ipcdetail::ct_rounded_size<sizeof(mq_hdr_t), index_align>::value,
+ r_index_size = ipcdetail::get_rounded_size(sizeof(msg_hdr_ptr_t)*max_num_msg, msg_hdr_align),
+ r_max_msg_size = ipcdetail::get_rounded_size(max_msg_size, msg_hdr_align) + sizeof(msg_header);
       return r_hdr_size + r_index_size + (max_num_msg*r_max_msg_size) +
- detail::managed_open_or_create_impl<shared_memory_object>::ManagedOpenOrCreateUserOffset;
+ ipcdetail::managed_open_or_create_impl<shared_memory_object>::ManagedOpenOrCreateUserOffset;
    }
 
    //!Initializes the memory structures to preallocate messages and constructs the
@@ -326,9 +326,9 @@
       const size_type
                   msg_hdr_align = ::boost::alignment_of<msg_header>::value,
                   index_align = ::boost::alignment_of<msg_hdr_ptr_t>::value,
- r_hdr_size = detail::ct_rounded_size<sizeof(mq_hdr_t), index_align>::value,
- r_index_size = detail::get_rounded_size(sizeof(msg_hdr_ptr_t)*m_max_num_msg, msg_hdr_align),
- r_max_msg_size = detail::get_rounded_size(m_max_msg_size, msg_hdr_align) + sizeof(msg_header);
+ r_hdr_size = ipcdetail::ct_rounded_size<sizeof(mq_hdr_t), index_align>::value,
+ r_index_size = ipcdetail::get_rounded_size(sizeof(msg_hdr_ptr_t)*m_max_num_msg, msg_hdr_align),
+ r_max_msg_size = ipcdetail::get_rounded_size(m_max_msg_size, msg_hdr_align) + sizeof(msg_header);
 
       //Pointer to the index
       msg_hdr_ptr_t *index = reinterpret_cast<msg_hdr_ptr_t*>
@@ -402,7 +402,7 @@
    const size_type m_maxmsgsize;
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 
 template<class VoidPointer>
 inline message_queue_t<VoidPointer>::~message_queue_t()
@@ -411,7 +411,7 @@
 template<class VoidPointer>
 inline typename message_queue_t<VoidPointer>::size_type message_queue_t<VoidPointer>::get_mem_size
    (size_type max_msg_size, size_type max_num_msg)
-{ return detail::mq_hdr_t<VoidPointer>::get_mem_size(max_msg_size, max_num_msg); }
+{ return ipcdetail::mq_hdr_t<VoidPointer>::get_mem_size(max_msg_size, max_num_msg); }
 
 template<class VoidPointer>
 inline message_queue_t<VoidPointer>::message_queue_t(create_only_t create_only,
@@ -426,7 +426,7 @@
               read_write,
               static_cast<void*>(0),
               //Prepare initialization functor
- detail::initialization_func_t<VoidPointer> (max_num_msg, max_msg_size),
+ ipcdetail::initialization_func_t<VoidPointer> (max_num_msg, max_msg_size),
               perm)
 {}
 
@@ -443,7 +443,7 @@
               read_write,
               static_cast<void*>(0),
               //Prepare initialization functor
- detail::initialization_func_t<VoidPointer> (max_num_msg, max_msg_size),
+ ipcdetail::initialization_func_t<VoidPointer> (max_num_msg, max_msg_size),
               perm)
 {}
 
@@ -456,7 +456,7 @@
               read_write,
               static_cast<void*>(0),
               //Prepare initialization functor
- detail::initialization_func_t<VoidPointer> ())
+ ipcdetail::initialization_func_t<VoidPointer> ())
 {}
 
 template<class VoidPointer>
@@ -486,7 +486,7 @@
                                 const void *buffer, size_type buffer_size,
                                 unsigned int priority, const boost::posix_time::ptime &abs_time)
 {
- detail::mq_hdr_t<VoidPointer> *p_hdr = static_cast<detail::mq_hdr_t<VoidPointer>*>(m_shmem.get_user_address());
+ ipcdetail::mq_hdr_t<VoidPointer> *p_hdr = static_cast<ipcdetail::mq_hdr_t<VoidPointer>*>(m_shmem.get_user_address());
    //Check if buffer is smaller than maximum allowed
    if (buffer_size > p_hdr->m_max_msg_size) {
       throw interprocess_exception(size_error);
@@ -527,7 +527,7 @@
       }
       
       //Get the first free message from free message queue
- detail::msg_hdr_t<VoidPointer> *free_msg = p_hdr->free_msg();
+ ipcdetail::msg_hdr_t<VoidPointer> *free_msg = p_hdr->free_msg();
       if (free_msg == 0) {
          throw interprocess_exception("boost::interprocess::message_queue corrupted");
       }
@@ -583,7 +583,7 @@
                           size_type &recvd_size, unsigned int &priority,
                           const boost::posix_time::ptime &abs_time)
 {
- detail::mq_hdr_t<VoidPointer> *p_hdr = static_cast<detail::mq_hdr_t<VoidPointer>*>(m_shmem.get_user_address());
+ ipcdetail::mq_hdr_t<VoidPointer> *p_hdr = static_cast<ipcdetail::mq_hdr_t<VoidPointer>*>(m_shmem.get_user_address());
    //Check if buffer is big enough for any message
    if (buffer_size < p_hdr->m_max_msg_size) {
       throw interprocess_exception(size_error);
@@ -625,7 +625,7 @@
       }
 
       //Thre is at least message ready to pick, get the top one
- detail::msg_hdr_t<VoidPointer> *top_msg = p_hdr->top_msg();
+ ipcdetail::msg_hdr_t<VoidPointer> *top_msg = p_hdr->top_msg();
 
       //Paranoia check
       if (top_msg == 0) {
@@ -656,20 +656,20 @@
 template<class VoidPointer>
 inline typename message_queue_t<VoidPointer>::size_type message_queue_t<VoidPointer>::get_max_msg() const
 {
- detail::mq_hdr_t<VoidPointer> *p_hdr = static_cast<detail::mq_hdr_t<VoidPointer>*>(m_shmem.get_user_address());
+ ipcdetail::mq_hdr_t<VoidPointer> *p_hdr = static_cast<ipcdetail::mq_hdr_t<VoidPointer>*>(m_shmem.get_user_address());
    return p_hdr ? p_hdr->m_max_num_msg : 0; }
 
 template<class VoidPointer>
 inline typename message_queue_t<VoidPointer>::size_type message_queue_t<VoidPointer>::get_max_msg_size() const
 {
- detail::mq_hdr_t<VoidPointer> *p_hdr = static_cast<detail::mq_hdr_t<VoidPointer>*>(m_shmem.get_user_address());
+ ipcdetail::mq_hdr_t<VoidPointer> *p_hdr = static_cast<ipcdetail::mq_hdr_t<VoidPointer>*>(m_shmem.get_user_address());
    return p_hdr ? p_hdr->m_max_msg_size : 0;
 }
 
 template<class VoidPointer>
 inline typename message_queue_t<VoidPointer>::size_type message_queue_t<VoidPointer>::get_num_msg()
 {
- detail::mq_hdr_t<VoidPointer> *p_hdr = static_cast<detail::mq_hdr_t<VoidPointer>*>(m_shmem.get_user_address());
+ ipcdetail::mq_hdr_t<VoidPointer> *p_hdr = static_cast<ipcdetail::mq_hdr_t<VoidPointer>*>(m_shmem.get_user_address());
    if(p_hdr){
       //---------------------------------------------
       scoped_lock<interprocess_mutex> lock(p_hdr->m_mutex);

Modified: trunk/boost/interprocess/managed_external_buffer.hpp
==============================================================================
--- trunk/boost/interprocess/managed_external_buffer.hpp (original)
+++ trunk/boost/interprocess/managed_external_buffer.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -38,10 +38,10 @@
          template<class IndexConfig> class IndexType
>
 class basic_managed_external_buffer
- : public detail::basic_managed_memory_impl <CharType, AllocationAlgorithm, IndexType>
+ : public ipcdetail::basic_managed_memory_impl <CharType, AllocationAlgorithm, IndexType>
 {
    /// @cond
- typedef detail::basic_managed_memory_impl
+ typedef ipcdetail::basic_managed_memory_impl
       <CharType, AllocationAlgorithm, IndexType> base_t;
    BOOST_MOVABLE_BUT_NOT_COPYABLE(basic_managed_external_buffer)
    /// @endcond

Modified: trunk/boost/interprocess/managed_heap_memory.hpp
==============================================================================
--- trunk/boost/interprocess/managed_heap_memory.hpp (original)
+++ trunk/boost/interprocess/managed_heap_memory.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -39,12 +39,12 @@
          template<class IndexConfig> class IndexType
>
 class basic_managed_heap_memory
- : public detail::basic_managed_memory_impl <CharType, AllocationAlgorithm, IndexType>
+ : public ipcdetail::basic_managed_memory_impl <CharType, AllocationAlgorithm, IndexType>
 {
    /// @cond
    private:
 
- typedef detail::basic_managed_memory_impl
+ typedef ipcdetail::basic_managed_memory_impl
       <CharType, AllocationAlgorithm, IndexType> base_t;
    BOOST_MOVABLE_BUT_NOT_COPYABLE(basic_managed_heap_memory)
    /// @endcond

Modified: trunk/boost/interprocess/managed_mapped_file.hpp
==============================================================================
--- trunk/boost/interprocess/managed_mapped_file.hpp (original)
+++ trunk/boost/interprocess/managed_mapped_file.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -38,22 +38,22 @@
          template<class IndexConfig> class IndexType
>
 class basic_managed_mapped_file
- : public detail::basic_managed_memory_impl
+ : public ipcdetail::basic_managed_memory_impl
       <CharType, AllocationAlgorithm, IndexType
- ,detail::managed_open_or_create_impl<detail::file_wrapper>::ManagedOpenOrCreateUserOffset>
+ ,ipcdetail::managed_open_or_create_impl<ipcdetail::file_wrapper>::ManagedOpenOrCreateUserOffset>
 {
    /// @cond
    public:
- typedef detail::basic_managed_memory_impl
+ typedef ipcdetail::basic_managed_memory_impl
       <CharType, AllocationAlgorithm, IndexType,
- detail::managed_open_or_create_impl<detail::file_wrapper>::ManagedOpenOrCreateUserOffset> base_t;
- typedef detail::file_wrapper device_type;
+ ipcdetail::managed_open_or_create_impl<ipcdetail::file_wrapper>::ManagedOpenOrCreateUserOffset> base_t;
+ typedef ipcdetail::file_wrapper device_type;
    typedef typename base_t::size_type size_type;
 
    private:
 
- typedef detail::create_open_func<base_t> create_open_func_t;
- typedef detail::managed_open_or_create_impl<detail::file_wrapper> managed_open_or_create_type;
+ typedef ipcdetail::create_open_func<base_t> create_open_func_t;
+ typedef ipcdetail::managed_open_or_create_impl<ipcdetail::file_wrapper> managed_open_or_create_type;
 
    basic_managed_mapped_file *get_this_pointer()
    { return this; }
@@ -75,7 +75,7 @@
    basic_managed_mapped_file(create_only_t create_only, const char *name,
                              size_type size, const void *addr = 0, const permissions &perm = permissions())
       : m_mfile(create_only, name, size, read_write, addr,
- create_open_func_t(get_this_pointer(), detail::DoCreate), perm)
+ create_open_func_t(get_this_pointer(), ipcdetail::DoCreate), perm)
    {}
 
    //!Creates mapped file and creates and places the segment manager if
@@ -87,7 +87,7 @@
                               const void *addr = 0, const permissions &perm = permissions())
       : m_mfile(open_or_create, name, size, read_write, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpenOrCreate), perm)
+ ipcdetail::DoOpenOrCreate), perm)
    {}
 
    //!Connects to a created mapped file and its segment manager.
@@ -96,7 +96,7 @@
                               const void *addr = 0)
       : m_mfile(open_only, name, read_write, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpen))
+ ipcdetail::DoOpen))
    {}
 
    //!Connects to a created mapped file and its segment manager
@@ -106,7 +106,7 @@
                               const void *addr = 0)
       : m_mfile(open_only, name, copy_on_write, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpen))
+ ipcdetail::DoOpen))
    {}
 
    //!Connects to a created mapped file and its segment manager
@@ -116,7 +116,7 @@
                               const void *addr = 0)
       : m_mfile(open_only, name, read_only, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpen))
+ ipcdetail::DoOpen))
    {}
 
    //!Moves the ownership of "moved"'s managed memory to *this.

Modified: trunk/boost/interprocess/managed_shared_memory.hpp
==============================================================================
--- trunk/boost/interprocess/managed_shared_memory.hpp (original)
+++ trunk/boost/interprocess/managed_shared_memory.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -39,19 +39,19 @@
          template<class IndexConfig> class IndexType
>
 class basic_managed_shared_memory
- : public detail::basic_managed_memory_impl
+ : public ipcdetail::basic_managed_memory_impl
       <CharType, AllocationAlgorithm, IndexType
- ,detail::managed_open_or_create_impl<shared_memory_object>::ManagedOpenOrCreateUserOffset>
- , private detail::managed_open_or_create_impl<shared_memory_object>
+ ,ipcdetail::managed_open_or_create_impl<shared_memory_object>::ManagedOpenOrCreateUserOffset>
+ , private ipcdetail::managed_open_or_create_impl<shared_memory_object>
 {
    /// @cond
- typedef detail::basic_managed_memory_impl
+ typedef ipcdetail::basic_managed_memory_impl
       <CharType, AllocationAlgorithm, IndexType,
- detail::managed_open_or_create_impl<shared_memory_object>::ManagedOpenOrCreateUserOffset> base_t;
- typedef detail::managed_open_or_create_impl
+ ipcdetail::managed_open_or_create_impl<shared_memory_object>::ManagedOpenOrCreateUserOffset> base_t;
+ typedef ipcdetail::managed_open_or_create_impl
       <shared_memory_object> base2_t;
 
- typedef detail::create_open_func<base_t> create_open_func_t;
+ typedef ipcdetail::create_open_func<base_t> create_open_func_t;
 
    basic_managed_shared_memory *get_this_pointer()
    { return this; }
@@ -87,7 +87,7 @@
                              size_type size, const void *addr = 0, const permissions& perm = permissions())
       : base_t()
       , base2_t(create_only, name, size, read_write, addr,
- create_open_func_t(get_this_pointer(), detail::DoCreate), perm)
+ create_open_func_t(get_this_pointer(), ipcdetail::DoCreate), perm)
    {}
 
    //!Creates shared memory and creates and places the segment manager if
@@ -100,7 +100,7 @@
       : base_t()
       , base2_t(open_or_create, name, size, read_write, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpenOrCreate), perm)
+ ipcdetail::DoOpenOrCreate), perm)
    {}
 
    //!Connects to a created shared memory and its segment manager.
@@ -111,7 +111,7 @@
       : base_t()
       , base2_t(open_only, name, copy_on_write, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpen))
+ ipcdetail::DoOpen))
    {}
 
    //!Connects to a created shared memory and its segment manager.
@@ -122,7 +122,7 @@
       : base_t()
       , base2_t(open_only, name, read_only, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpen))
+ ipcdetail::DoOpen))
    {}
 
    //!Connects to a created shared memory and its segment manager.
@@ -132,7 +132,7 @@
       : base_t()
       , base2_t(open_only, name, read_write, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpen))
+ ipcdetail::DoOpen))
    {}
 
    //!Moves the ownership of "moved"'s managed memory to *this.

Modified: trunk/boost/interprocess/managed_windows_shared_memory.hpp
==============================================================================
--- trunk/boost/interprocess/managed_windows_shared_memory.hpp (original)
+++ trunk/boost/interprocess/managed_windows_shared_memory.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -45,16 +45,16 @@
          template<class IndexConfig> class IndexType
>
 class basic_managed_windows_shared_memory
- : public detail::basic_managed_memory_impl
+ : public ipcdetail::basic_managed_memory_impl
       <CharType, AllocationAlgorithm, IndexType
- ,detail::managed_open_or_create_impl<windows_shared_memory>::ManagedOpenOrCreateUserOffset>
+ ,ipcdetail::managed_open_or_create_impl<windows_shared_memory>::ManagedOpenOrCreateUserOffset>
 {
    /// @cond
    private:
- typedef detail::basic_managed_memory_impl
+ typedef ipcdetail::basic_managed_memory_impl
       <CharType, AllocationAlgorithm, IndexType,
- detail::managed_open_or_create_impl<windows_shared_memory>::ManagedOpenOrCreateUserOffset> base_t;
- typedef detail::create_open_func<base_t> create_open_func_t;
+ ipcdetail::managed_open_or_create_impl<windows_shared_memory>::ManagedOpenOrCreateUserOffset> base_t;
+ typedef ipcdetail::create_open_func<base_t> create_open_func_t;
 
    basic_managed_windows_shared_memory *get_this_pointer()
    { return this; }
@@ -78,7 +78,7 @@
       (create_only_t create_only, const char *name,
      size_type size, const void *addr = 0, const permissions &perm = permissions())
       : m_wshm(create_only, name, size, read_write, addr,
- create_open_func_t(get_this_pointer(), detail::DoCreate), perm)
+ create_open_func_t(get_this_pointer(), ipcdetail::DoCreate), perm)
    {}
 
    //!Creates shared memory and creates and places the segment manager if
@@ -92,7 +92,7 @@
       const permissions &perm = permissions())
       : m_wshm(open_or_create, name, size, read_write, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpenOrCreate), perm)
+ ipcdetail::DoOpenOrCreate), perm)
    {}
 
    //!Connects to a created shared memory and its segment manager.
@@ -101,7 +101,7 @@
       (open_only_t open_only, const char* name, const void *addr = 0)
       : m_wshm(open_only, name, read_write, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpen))
+ ipcdetail::DoOpen))
    {}
 
    //!Connects to a created shared memory and its segment manager
@@ -110,7 +110,7 @@
    basic_managed_windows_shared_memory
       (open_copy_on_write_t, const char* name, const void *addr = 0)
       : m_wshm(open_only, name, copy_on_write, addr,
- create_open_func_t(get_this_pointer(), detail::DoOpen))
+ create_open_func_t(get_this_pointer(), ipcdetail::DoOpen))
    {}
 
    //!Connects to a created shared memory and its segment manager
@@ -120,7 +120,7 @@
       (open_read_only_t, const char* name, const void *addr = 0)
       : base_t()
       , m_wshm(open_only, name, read_only, addr,
- create_open_func_t(get_this_pointer(), detail::DoOpen))
+ create_open_func_t(get_this_pointer(), ipcdetail::DoOpen))
    {}
 
    //!Moves the ownership of "moved"'s managed memory to *this.
@@ -171,7 +171,7 @@
    }
 
    private:
- detail::managed_open_or_create_impl<windows_shared_memory, false> m_wshm;
+ ipcdetail::managed_open_or_create_impl<windows_shared_memory, false> m_wshm;
    /// @endcond
 };
 

Modified: trunk/boost/interprocess/managed_xsi_shared_memory.hpp
==============================================================================
--- trunk/boost/interprocess/managed_xsi_shared_memory.hpp (original)
+++ trunk/boost/interprocess/managed_xsi_shared_memory.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -41,23 +41,23 @@
          template<class IndexConfig> class IndexType
>
 class basic_managed_xsi_shared_memory
- : public detail::basic_managed_memory_impl
+ : public ipcdetail::basic_managed_memory_impl
       <CharType, AllocationAlgorithm, IndexType
- ,detail::managed_open_or_create_impl<xsi_shared_memory_file_wrapper, false, true>::ManagedOpenOrCreateUserOffset>
- , private detail::managed_open_or_create_impl<xsi_shared_memory_file_wrapper, false, true>
+ ,ipcdetail::managed_open_or_create_impl<xsi_shared_memory_file_wrapper, false, true>::ManagedOpenOrCreateUserOffset>
+ , private ipcdetail::managed_open_or_create_impl<xsi_shared_memory_file_wrapper, false, true>
 {
    /// @cond
    public:
    typedef xsi_shared_memory_file_wrapper device_type;
 
    public:
- typedef detail::managed_open_or_create_impl
+ typedef ipcdetail::managed_open_or_create_impl
       <xsi_shared_memory_file_wrapper, false, true> base2_t;
- typedef detail::basic_managed_memory_impl
+ typedef ipcdetail::basic_managed_memory_impl
       <CharType, AllocationAlgorithm, IndexType,
       base2_t::ManagedOpenOrCreateUserOffset> base_t;
 
- typedef detail::create_open_func<base_t> create_open_func_t;
+ typedef ipcdetail::create_open_func<base_t> create_open_func_t;
 
    basic_managed_xsi_shared_memory *get_this_pointer()
    { return this; }
@@ -90,7 +90,7 @@
                              std::size_t size, const void *addr = 0, const permissions& perm = permissions())
       : base_t()
       , base2_t(create_only, key, size, read_write, addr,
- create_open_func_t(get_this_pointer(), detail::DoCreate), perm)
+ create_open_func_t(get_this_pointer(), ipcdetail::DoCreate), perm)
    {}
 
    //!Creates shared memory and creates and places the segment manager if
@@ -103,7 +103,7 @@
       : base_t()
       , base2_t(open_or_create, key, size, read_write, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpenOrCreate), perm)
+ ipcdetail::DoOpenOrCreate), perm)
    {}
 
    //!Connects to a created shared memory and its segment manager.
@@ -114,7 +114,7 @@
       : base_t()
       , base2_t(open_only, key, read_only, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpen))
+ ipcdetail::DoOpen))
    {}
 
    //!Connects to a created shared memory and its segment manager.
@@ -124,7 +124,7 @@
       : base_t()
       , base2_t(open_only, key, read_write, addr,
                 create_open_func_t(get_this_pointer(),
- detail::DoOpen))
+ ipcdetail::DoOpen))
    {}
 
    //!Moves the ownership of "moved"'s managed memory to *this.

Modified: trunk/boost/interprocess/mapped_region.hpp
==============================================================================
--- trunk/boost/interprocess/mapped_region.hpp (original)
+++ trunk/boost/interprocess/mapped_region.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -48,8 +48,8 @@
 namespace interprocess {
 
 /// @cond
-namespace detail{ class interprocess_tester; }
-namespace detail{ class raw_mapped_region_creator; }
+namespace ipcdetail{ class interprocess_tester; }
+namespace ipcdetail{ class raw_mapped_region_creator; }
 
 /// @endcond
 
@@ -86,7 +86,7 @@
    : m_base(0), m_size(0), m_offset(0)
    , m_extra_offset(0)
    , m_mode(read_only)
- , m_file_mapping_hnd(detail::invalid_file())
+ , m_file_mapping_hnd(ipcdetail::invalid_file())
    #else
    : m_base(MAP_FAILED), m_size(0), m_offset(0), m_extra_offset(0), m_mode(read_only), m_is_xsi(false)
    #endif
@@ -158,8 +158,8 @@
    bool m_is_xsi;
    #endif
 
- friend class detail::interprocess_tester;
- friend class detail::raw_mapped_region_creator;
+ friend class ipcdetail::interprocess_tester;
+ friend class ipcdetail::raw_mapped_region_creator;
    void dont_close_on_destruction();
    /// @endcond
 };
@@ -188,7 +188,7 @@
 
 inline mapped_region::mapped_region()
    : m_base(0), m_size(0), m_offset(0), m_extra_offset(0), m_mode(read_only)
- , m_file_mapping_hnd(detail::invalid_file())
+ , m_file_mapping_hnd(ipcdetail::invalid_file())
 {}
 
 template<int dummy>
@@ -207,7 +207,7 @@
    ,std::size_t size
    ,const void *address)
    : m_base(0), m_size(0), m_offset(0), m_extra_offset(0), m_mode(mode)
- , m_file_mapping_hnd(detail::invalid_file())
+ , m_file_mapping_hnd(ipcdetail::invalid_file())
 {
    mapping_handle_t mhandle = mapping.get_mapping_handle();
    file_handle_t native_mapping_handle = 0;
@@ -244,7 +244,7 @@
       if(size == 0){
          __int64 total_size;
          if(!winapi::get_file_size
- (detail::file_handle_from_mapping_handle
+ (ipcdetail::file_handle_from_mapping_handle
                (mapping.get_mapping_handle()), total_size)){
             error_info err(winapi::get_last_error());
             throw interprocess_exception(err);
@@ -261,7 +261,7 @@
       //Create file mapping
       native_mapping_handle =
          winapi::create_file_mapping
- (detail::file_handle_from_mapping_handle(mapping.get_mapping_handle()), file_map_access, 0, 0, 0, 0);
+ (ipcdetail::file_handle_from_mapping_handle(mapping.get_mapping_handle()), file_map_access, 0, 0, 0, 0);
 
       //Check if all is correct
       if(!native_mapping_handle){
@@ -364,9 +364,9 @@
       m_base = 0;
    }
    #if (defined BOOST_INTERPROCESS_WINDOWS)
- if(m_file_mapping_hnd != detail::invalid_file()){
+ if(m_file_mapping_hnd != ipcdetail::invalid_file()){
          winapi::close_handle(m_file_mapping_hnd);
- m_file_mapping_hnd = detail::invalid_file();
+ m_file_mapping_hnd = ipcdetail::invalid_file();
       }
    #endif
 }
@@ -579,15 +579,15 @@
 
 inline void mapped_region::swap(mapped_region &other)
 {
- detail::do_swap(this->m_base, other.m_base);
- detail::do_swap(this->m_size, other.m_size);
- detail::do_swap(this->m_offset, other.m_offset);
- detail::do_swap(this->m_extra_offset, other.m_extra_offset);
- detail::do_swap(this->m_mode, other.m_mode);
+ ipcdetail::do_swap(this->m_base, other.m_base);
+ ipcdetail::do_swap(this->m_size, other.m_size);
+ ipcdetail::do_swap(this->m_offset, other.m_offset);
+ ipcdetail::do_swap(this->m_extra_offset, other.m_extra_offset);
+ ipcdetail::do_swap(this->m_mode, other.m_mode);
    #if (defined BOOST_INTERPROCESS_WINDOWS)
- detail::do_swap(this->m_file_mapping_hnd, other.m_file_mapping_hnd);
+ ipcdetail::do_swap(this->m_file_mapping_hnd, other.m_file_mapping_hnd);
    #else
- detail::do_swap(this->m_is_xsi, other.m_is_xsi);
+ ipcdetail::do_swap(this->m_is_xsi, other.m_is_xsi);
    #endif
 }
 

Modified: trunk/boost/interprocess/mem_algo/detail/mem_algo_common.hpp
==============================================================================
--- trunk/boost/interprocess/mem_algo/detail/mem_algo_common.hpp (original)
+++ trunk/boost/interprocess/mem_algo/detail/mem_algo_common.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -38,7 +38,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 //!This class implements several allocation functions shared by different algorithms
 //!(aligned allocation, multiple allocation...).
@@ -73,13 +73,13 @@
    { return (((std::size_t)ptr) % Alignment == 0); }
 
    static size_type ceil_units(size_type size)
- { return detail::get_rounded_size(size, Alignment)/Alignment; }
+ { return ipcdetail::get_rounded_size(size, Alignment)/Alignment; }
 
    static size_type floor_units(size_type size)
    { return size/Alignment; }
 
    static size_type multiple_of_units(size_type size)
- { return detail::get_rounded_size(size, Alignment); }
+ { return ipcdetail::get_rounded_size(size, Alignment); }
 
    static multiallocation_chain allocate_many
       (MemoryAlgorithm *memory_algo, size_type elem_bytes, size_type n_elements)
@@ -119,10 +119,10 @@
          //If we want to use minbytes data to get a buffer between maxbytes
          //and minbytes if maxbytes can't be achieved, calculate the
          //biggest of all possibilities
- current_forward = detail::get_truncated_size_po2(received_size, backwards_multiple);
+ current_forward = ipcdetail::get_truncated_size_po2(received_size, backwards_multiple);
          needs_backwards = size_to_achieve - current_forward;
          BOOST_ASSERT((needs_backwards % backwards_multiple) == 0);
- needs_backwards_lcmed = detail::get_rounded_size_po2(needs_backwards, lcm);
+ needs_backwards_lcmed = ipcdetail::get_rounded_size_po2(needs_backwards, lcm);
          lcm_out = lcm;
          needs_backwards_lcmed_out = needs_backwards_lcmed;
          return true;
@@ -130,7 +130,7 @@
       //Check if it's multiple of alignment
       else if((backwards_multiple & (Alignment - 1u)) == 0){
          lcm = backwards_multiple;
- current_forward = detail::get_truncated_size(received_size, backwards_multiple);
+ current_forward = ipcdetail::get_truncated_size(received_size, backwards_multiple);
          //No need to round needs_backwards because backwards_multiple == lcm
          needs_backwards_lcmed = needs_backwards = size_to_achieve - current_forward;
          BOOST_ASSERT((needs_backwards_lcmed & (Alignment - 1u)) == 0);
@@ -141,7 +141,7 @@
       //Check if it's multiple of the half of the alignmment
       else if((backwards_multiple & ((Alignment/2u) - 1u)) == 0){
          lcm = backwards_multiple*2u;
- current_forward = detail::get_truncated_size(received_size, backwards_multiple);
+ current_forward = ipcdetail::get_truncated_size(received_size, backwards_multiple);
          needs_backwards_lcmed = needs_backwards = size_to_achieve - current_forward;
          if(0 != (needs_backwards_lcmed & (Alignment-1)))
          //while(0 != (needs_backwards_lcmed & (Alignment-1)))
@@ -155,7 +155,7 @@
       else if((backwards_multiple & ((Alignment/4u) - 1u)) == 0){
          size_type remainder;
          lcm = backwards_multiple*4u;
- current_forward = detail::get_truncated_size(received_size, backwards_multiple);
+ current_forward = ipcdetail::get_truncated_size(received_size, backwards_multiple);
          needs_backwards_lcmed = needs_backwards = size_to_achieve - current_forward;
          //while(0 != (needs_backwards_lcmed & (Alignment-1)))
             //needs_backwards_lcmed += backwards_multiple;
@@ -173,15 +173,15 @@
          return true;
       }
       else{
- lcm = detail::lcm(max, min);
+ lcm = ipcdetail::lcm(max, min);
       }
       //If we want to use minbytes data to get a buffer between maxbytes
       //and minbytes if maxbytes can't be achieved, calculate the
       //biggest of all possibilities
- current_forward = detail::get_truncated_size(received_size, backwards_multiple);
+ current_forward = ipcdetail::get_truncated_size(received_size, backwards_multiple);
       needs_backwards = size_to_achieve - current_forward;
       BOOST_ASSERT((needs_backwards % backwards_multiple) == 0);
- needs_backwards_lcmed = detail::get_rounded_size(needs_backwards, lcm);
+ needs_backwards_lcmed = ipcdetail::get_rounded_size(needs_backwards, lcm);
       lcm_out = lcm;
       needs_backwards_lcmed_out = needs_backwards_lcmed;
       return true;
@@ -538,14 +538,14 @@
    static void priv_deallocate_many(MemoryAlgorithm *memory_algo, multiallocation_chain chain)
    {
       while(!chain.empty()){
- void *addr = detail::get_pointer(chain.front());
+ void *addr = ipcdetail::get_pointer(chain.front());
          chain.pop_front();
          memory_algo->priv_deallocate(addr);
       }
    }
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/mem_algo/detail/multi_simple_seq_fit.hpp
==============================================================================
--- trunk/boost/interprocess/mem_algo/detail/multi_simple_seq_fit.hpp (original)
+++ trunk/boost/interprocess/mem_algo/detail/multi_simple_seq_fit.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -34,9 +34,9 @@
    linked list of free buffers.*/
 template<class MutexFamily, class VoidPtr>
 class multi_simple_seq_fit
- : public detail::simple_seq_fit_impl<MutexFamily, VoidPtr>
+ : public ipcdetail::simple_seq_fit_impl<MutexFamily, VoidPtr>
 {
- typedef detail::simple_seq_fit_impl<MutexFamily, VoidPtr> base_t;
+ typedef ipcdetail::simple_seq_fit_impl<MutexFamily, VoidPtr> base_t;
  public:
    /*!Constructor. "size" is the total size of the managed memory segment,
       "extra_hdr_bytes" indicates the extra bytes beginning in the sizeof(multi_simple_seq_fit)

Modified: trunk/boost/interprocess/mem_algo/detail/multi_simple_seq_fit_impl.hpp
==============================================================================
--- trunk/boost/interprocess/mem_algo/detail/multi_simple_seq_fit_impl.hpp (original)
+++ trunk/boost/interprocess/mem_algo/detail/multi_simple_seq_fit_impl.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -48,7 +48,7 @@
 
 namespace interprocess {
 
-namespace detail {
+namespace ipcdetail {
 
 /*!This class implements the simple sequential fit algorithm with a simply
    linked list of free buffers.
@@ -222,8 +222,8 @@
    /*!Makes a new memory portion available for allocation*/
    void priv_add_segment(void *addr, size_type size);
 
- enum { Alignment = ::boost::alignment_of<boost::detail::max_align>::value };
- enum { BlockCtrlBytes = detail::ct_rounded_size<sizeof(block_ctrl), Alignment>::value };
+ enum { Alignment = ::boost::alignment_of<boost::ipcdetail::max_align>::value };
+ enum { BlockCtrlBytes = ipcdetail::ct_rounded_size<sizeof(block_ctrl), Alignment>::value };
    enum { BlockCtrlSize = BlockCtrlBytes/Alignment };
    enum { MinBlockSize = BlockCtrlSize + Alignment };
 
@@ -240,7 +240,7 @@
    m_header.m_size = size;
 
    //Initialize pointers
- size_type block1_off = detail::get_rounded_size(sizeof(*this)+extra_hdr_bytes, Alignment);
+ size_type block1_off = ipcdetail::get_rounded_size(sizeof(*this)+extra_hdr_bytes, Alignment);
    m_header.m_root.m_next = reinterpret_cast<block_ctrl*>
                               (reinterpret_cast<char*>(this) + block1_off);
    m_header.m_root.m_next->m_size = (size - block1_off)/Alignment;
@@ -306,7 +306,7 @@
 simple_seq_fit_impl<MutexFamily, VoidPointer>::
    get_min_size (size_type extra_hdr_bytes)
 {
- return detail::get_rounded_size(sizeof(simple_seq_fit_impl)+extra_hdr_bytes
+ return ipcdetail::get_rounded_size(sizeof(simple_seq_fit_impl)+extra_hdr_bytes
                                   ,Alignment)
           + MinBlockSize;
 }
@@ -319,7 +319,7 @@
    boost::interprocess::scoped_lock<interprocess_mutex> guard(m_header);
    //-----------------------
    return m_header.m_allocated == 0 &&
- detail::get_pointer(m_header.m_root.m_next->m_next) == &m_header.m_root;
+ ipcdetail::get_pointer(m_header.m_root.m_next->m_next) == &m_header.m_root;
 }
 
 template<class MutexFamily, class VoidPointer>
@@ -328,7 +328,7 @@
    //-----------------------
    boost::interprocess::scoped_lock<interprocess_mutex> guard(m_header);
    //-----------------------
- block_ctrl *block = detail::get_pointer(m_header.m_root.m_next);
+ block_ctrl *block = ipcdetail::get_pointer(m_header.m_root.m_next);
 
    //Iterate through all free portions
    do{
@@ -336,7 +336,7 @@
       std::memset( reinterpret_cast<char*>(block) + BlockCtrlBytes
                  , 0
                  , block->m_size*Alignment - BlockCtrlBytes);
- block = detail::get_pointer(block->m_next);
+ block = ipcdetail::get_pointer(block->m_next);
    }
    while(block != &m_header.m_root);
 }
@@ -348,14 +348,14 @@
    //-----------------------
    boost::interprocess::scoped_lock<interprocess_mutex> guard(m_header);
    //-----------------------
- block_ctrl *block = detail::get_pointer(m_header.m_root.m_next);
+ block_ctrl *block = ipcdetail::get_pointer(m_header.m_root.m_next);
 
    size_type free_memory = 0;
 
    //Iterate through all blocks obtaining their size
    do{
       //Free blocks's next must be always valid
- block_ctrl *next = detail::get_pointer(block->m_next);
+ block_ctrl *next = ipcdetail::get_pointer(block->m_next);
       if(!next){
          return false;
       }
@@ -497,11 +497,11 @@
       }
 
       size_type needs_backwards =
- detail::get_rounded_size(preferred_size - extra_forward, Alignment);
+ ipcdetail::get_rounded_size(preferred_size - extra_forward, Alignment);
    
       if(!only_preferred_backwards){
          needs_backwards =
- max_value(detail::get_rounded_size(min_size - extra_forward, Alignment)
+ max_value(ipcdetail::get_rounded_size(min_size - extra_forward, Alignment)
                      ,min_value(prev->get_user_bytes(), needs_backwards));
       }
 
@@ -562,11 +562,11 @@
       return return_type(0, false);
 
    //Number of units to request (including block_ctrl header)
- size_type nunits = detail::get_rounded_size(preferred_size, Alignment)/Alignment + BlockCtrlSize;
+ size_type nunits = ipcdetail::get_rounded_size(preferred_size, Alignment)/Alignment + BlockCtrlSize;
 
    //Get the root and the first memory block
    block_ctrl *prev = &m_header.m_root;
- block_ctrl *block = detail::get_pointer(prev->m_next);
+ block_ctrl *block = ipcdetail::get_pointer(prev->m_next);
    block_ctrl *root = &m_header.m_root;
    block_ctrl *biggest_block = 0;
    block_ctrl *prev_biggest_block = 0;
@@ -595,14 +595,14 @@
          if(addr) return return_type(addr, false);
          //Bad luck, let's check next block
          prev = block;
- block = detail::get_pointer(block->m_next);
+ block = ipcdetail::get_pointer(block->m_next);
       }
 
       //Bad luck finding preferred_size, now if we have any biggest_block
       //try with this block
       if(biggest_block){
          received_size = biggest_block->m_size*Alignment - BlockCtrlSize;
- nunits = detail::get_rounded_size(limit_size, Alignment)/Alignment + BlockCtrlSize;
+ nunits = ipcdetail::get_rounded_size(limit_size, Alignment)/Alignment + BlockCtrlSize;
          void *ret = this->priv_check_and_allocate
                         (nunits, prev_biggest_block, biggest_block, received_size);
          if(ret)
@@ -652,12 +652,12 @@
    //Take the address where the previous block should go
    block_ctrl *root = &m_header.m_root;
    block_ctrl *prev_2_block = root;
- block_ctrl *prev_block = detail::get_pointer(root->m_next);
+ block_ctrl *prev_block = ipcdetail::get_pointer(root->m_next);
    while((reinterpret_cast<char*>(prev_block) + prev_block->m_size*Alignment)
             != (reinterpret_cast<char*>(ptr))
          && prev_block != root){
       prev_2_block = prev_block;
- prev_block = detail::get_pointer(prev_block->m_next);
+ prev_block = ipcdetail::get_pointer(prev_block->m_next);
    }
 
    if(prev_block == root || !prev_block->m_next)
@@ -692,8 +692,8 @@
    received_size = old_block_size*Alignment - BlockCtrlBytes;
 
    //Now translate it to Alignment units
- min_size = detail::get_rounded_size(min_size, Alignment)/Alignment;
- preferred_size = detail::get_rounded_size(preferred_size, Alignment)/Alignment;
+ min_size = ipcdetail::get_rounded_size(min_size, Alignment)/Alignment;
+ preferred_size = ipcdetail::get_rounded_size(preferred_size, Alignment)/Alignment;
 
    //Some parameter checks
    if(min_size > preferred_size)
@@ -725,8 +725,8 @@
    
    //Find the previous free block of next_block
    block_ctrl *prev = &m_header.m_root;
- while(detail::get_pointer(prev->m_next) != next_block){
- prev = detail::get_pointer(prev->m_next);
+ while(ipcdetail::get_pointer(prev->m_next) != next_block){
+ prev = ipcdetail::get_pointer(prev->m_next);
    }
 
    //Now insert merged block in the free list
@@ -768,7 +768,7 @@
 
    //Now translate it to Alignment units
    max_size = max_size/Alignment;
- preferred_size = detail::get_rounded_size(preferred_size, Alignment)/Alignment;
+ preferred_size = ipcdetail::get_rounded_size(preferred_size, Alignment)/Alignment;
 
    //Some parameter checks
    if(max_size < preferred_size)
@@ -940,15 +940,15 @@
    //This ordering comparison must be done with original pointers
    //types since their mapping to raw pointers can be different
    //in each process
- while((detail::get_pointer(pos) != &m_header.m_root) && (block > pos)){
+ while((ipcdetail::get_pointer(pos) != &m_header.m_root) && (block > pos)){
       prev = pos;
       pos = pos->m_next;
    }
 
    //Try to combine with upper block
- if ((reinterpret_cast<char*>(detail::get_pointer(block))
+ if ((reinterpret_cast<char*>(ipcdetail::get_pointer(block))
             + Alignment*block->m_size) ==
- reinterpret_cast<char*>(detail::get_pointer(pos))){
+ reinterpret_cast<char*>(ipcdetail::get_pointer(pos))){
 
       block->m_size += pos->m_size;
       block->m_next = pos->m_next;
@@ -958,9 +958,9 @@
    }
 
    //Try to combine with lower block
- if ((reinterpret_cast<char*>(detail::get_pointer(prev))
+ if ((reinterpret_cast<char*>(ipcdetail::get_pointer(prev))
             + Alignment*prev->m_size) ==
- reinterpret_cast<char*>(detail::get_pointer(block))){
+ reinterpret_cast<char*>(ipcdetail::get_pointer(block))){
       prev->m_size += block->m_size;
       prev->m_next = block->m_next;
    }
@@ -969,7 +969,7 @@
    }
 }
 
-} //namespace detail {
+} //namespace ipcdetail {
 
 } //namespace interprocess {
 

Modified: trunk/boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp
==============================================================================
--- trunk/boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp (original)
+++ trunk/boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -22,7 +22,7 @@
 
 #include <boost/interprocess/interprocess_fwd.hpp>
 #include <boost/interprocess/containers/allocation_type.hpp>
-#include <boost/interprocess/containers/container/detail/multiallocation_chain.hpp>
+#include <boost/container/detail/multiallocation_chain.hpp>
 #include <boost/interprocess/offset_ptr.hpp>
 #include <boost/interprocess/sync/interprocess_mutex.hpp>
 #include <boost/interprocess/exceptions.hpp>
@@ -46,7 +46,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 //!This class implements the simple sequential fit algorithm with a simply
 //!linked list of free buffers.
@@ -117,9 +117,9 @@
       size_type m_extra_hdr_bytes;
    } m_header;
 
- friend class detail::memory_algorithm_common<simple_seq_fit_impl>;
+ friend class ipcdetail::memory_algorithm_common<simple_seq_fit_impl>;
 
- typedef detail::memory_algorithm_common<simple_seq_fit_impl> algo_impl_t;
+ typedef ipcdetail::memory_algorithm_common<simple_seq_fit_impl> algo_impl_t;
 
    public:
    //!Constructor. "size" is the total size of the managed memory segment,
@@ -281,7 +281,7 @@
    public:
         static const size_type Alignment = ::boost::alignment_of< ::boost::detail::max_align>::value;
    private:
- static const size_type BlockCtrlBytes = detail::ct_rounded_size<sizeof(block_ctrl), Alignment>::value;
+ static const size_type BlockCtrlBytes = ipcdetail::ct_rounded_size<sizeof(block_ctrl), Alignment>::value;
    static const size_type BlockCtrlUnits = BlockCtrlBytes/Alignment;
    static const size_type MinBlockUnits = BlockCtrlUnits;
    static const size_type MinBlockSize = MinBlockUnits*Alignment;
@@ -303,7 +303,7 @@
    size_type uint_aligned_this = uint_this/Alignment*Alignment;
    size_type this_disalignment = (uint_this - uint_aligned_this);
    size_type block1_off =
- detail::get_rounded_size(sizeof(simple_seq_fit_impl) + extra_hdr_bytes + this_disalignment, Alignment)
+ ipcdetail::get_rounded_size(sizeof(simple_seq_fit_impl) + extra_hdr_bytes + this_disalignment, Alignment)
       - this_disalignment;
    algo_impl_t::assert_alignment(this_disalignment + block1_off);
    return block1_off;
@@ -319,7 +319,7 @@
    size_type uint_aligned_this = uint_this/Alignment*Alignment;
    size_type this_disalignment = (uint_this - uint_aligned_this);
    size_type old_end =
- detail::get_truncated_size(m_header.m_size + this_disalignment, Alignment)
+ ipcdetail::get_truncated_size(m_header.m_size + this_disalignment, Alignment)
       - this_disalignment;
    algo_impl_t::assert_alignment(old_end + this_disalignment);
    return old_end;
@@ -339,7 +339,7 @@
 
    m_header.m_root.m_next = reinterpret_cast<block_ctrl*>
       ((reinterpret_cast<char*>(this) + block1_off));
- algo_impl_t::assert_alignment(detail::get_pointer(m_header.m_root.m_next));
+ algo_impl_t::assert_alignment(ipcdetail::get_pointer(m_header.m_root.m_next));
    m_header.m_root.m_next->m_size = (size - block1_off)/Alignment;
    m_header.m_root.m_next->m_next = &m_header.m_root;
 }
@@ -384,7 +384,7 @@
    //Get the root and the first memory block
    block_ctrl *prev = &m_header.m_root;
    block_ctrl *last = &m_header.m_root;
- block_ctrl *block = detail::get_pointer(last->m_next);
+ block_ctrl *block = ipcdetail::get_pointer(last->m_next);
    block_ctrl *root = &m_header.m_root;
 
    //No free block?
@@ -394,7 +394,7 @@
    while(block != root){
       prev = last;
       last = block;
- block = detail::get_pointer(block->m_next);
+ block = ipcdetail::get_pointer(block->m_next);
    }
 
    char *last_free_end_address = reinterpret_cast<char*>(last) + last->m_size*Alignment;
@@ -412,7 +412,7 @@
       unique_block = priv_allocate(boost::interprocess::allocate_new, 0, 0, ignore).first;
       if(!unique_block)
          return;
- last = detail::get_pointer(m_header.m_root.m_next);
+ last = ipcdetail::get_pointer(m_header.m_root.m_next);
       BOOST_ASSERT(last_free_end_address == (reinterpret_cast<char*>(last) + last->m_size*Alignment));
    }
    size_type last_units = last->m_size;
@@ -493,8 +493,8 @@
 simple_seq_fit_impl<MutexFamily, VoidPointer>::
    get_min_size (size_type extra_hdr_bytes)
 {
- return detail::get_rounded_size((size_type)sizeof(simple_seq_fit_impl),Alignment) +
- detail::get_rounded_size(extra_hdr_bytes,Alignment)
+ return ipcdetail::get_rounded_size((size_type)sizeof(simple_seq_fit_impl),Alignment) +
+ ipcdetail::get_rounded_size(extra_hdr_bytes,Alignment)
           + MinBlockSize;
 }
 
@@ -506,7 +506,7 @@
    boost::interprocess::scoped_lock<interprocess_mutex> guard(m_header);
    //-----------------------
    return m_header.m_allocated == 0 &&
- detail::get_pointer(m_header.m_root.m_next->m_next) == &m_header.m_root;
+ ipcdetail::get_pointer(m_header.m_root.m_next->m_next) == &m_header.m_root;
 }
 
 template<class MutexFamily, class VoidPointer>
@@ -515,7 +515,7 @@
    //-----------------------
    boost::interprocess::scoped_lock<interprocess_mutex> guard(m_header);
    //-----------------------
- block_ctrl *block = detail::get_pointer(m_header.m_root.m_next);
+ block_ctrl *block = ipcdetail::get_pointer(m_header.m_root.m_next);
 
    //Iterate through all free portions
    do{
@@ -523,7 +523,7 @@
       std::memset( priv_get_user_buffer(block)
                  , 0
              , block->get_user_bytes());
- block = detail::get_pointer(block->m_next);
+ block = ipcdetail::get_pointer(block->m_next);
    }
    while(block != &m_header.m_root);
 }
@@ -535,7 +535,7 @@
    //-----------------------
    boost::interprocess::scoped_lock<interprocess_mutex> guard(m_header);
    //-----------------------
- block_ctrl *block = detail::get_pointer(m_header.m_root.m_next);
+ block_ctrl *block = ipcdetail::get_pointer(m_header.m_root.m_next);
 
    size_type free_memory = 0;
 
@@ -545,7 +545,7 @@
       if(!algo_impl_t::check_alignment(block))
          return false;
       //Free blocks's next must be always valid
- block_ctrl *next = detail::get_pointer(block->m_next);
+ block_ctrl *next = ipcdetail::get_pointer(block->m_next);
       if(!next){
          return false;
       }
@@ -693,10 +693,10 @@
       }
 
       size_type needs_backwards =
- detail::get_rounded_size(preferred_size - extra_forward, Alignment);
+ ipcdetail::get_rounded_size(preferred_size - extra_forward, Alignment);
    
       if(!only_preferred_backwards){
- max_value(detail::get_rounded_size(min_size - extra_forward, Alignment)
+ max_value(ipcdetail::get_rounded_size(min_size - extra_forward, Alignment)
                      ,min_value(prev->get_user_bytes(), needs_backwards));
       }
 
@@ -757,7 +757,7 @@
 simple_seq_fit_impl<MutexFamily, VoidPointer>::
    priv_get_total_units(size_type userbytes)
 {
- size_type s = detail::get_rounded_size(userbytes, Alignment)/Alignment;
+ size_type s = ipcdetail::get_rounded_size(userbytes, Alignment)/Alignment;
    if(!s) ++s;
    return BlockCtrlUnits + s;
 }
@@ -782,11 +782,11 @@
       return return_type(static_cast<void*>(0), false);
 
    //Number of units to request (including block_ctrl header)
- size_type nunits = detail::get_rounded_size(preferred_size, Alignment)/Alignment + BlockCtrlUnits;
+ size_type nunits = ipcdetail::get_rounded_size(preferred_size, Alignment)/Alignment + BlockCtrlUnits;
 
    //Get the root and the first memory block
    block_ctrl *prev = &m_header.m_root;
- block_ctrl *block = detail::get_pointer(prev->m_next);
+ block_ctrl *block = ipcdetail::get_pointer(prev->m_next);
    block_ctrl *root = &m_header.m_root;
    block_ctrl *biggest_block = 0;
    block_ctrl *prev_biggest_block = 0;
@@ -821,13 +821,13 @@
          }
          //Bad luck, let's check next block
          prev = block;
- block = detail::get_pointer(block->m_next);
+ block = ipcdetail::get_pointer(block->m_next);
       }
 
       //Bad luck finding preferred_size, now if we have any biggest_block
       //try with this block
       if(biggest_block){
- size_type limit_units = detail::get_rounded_size(limit_size, Alignment)/Alignment + BlockCtrlUnits;
+ size_type limit_units = ipcdetail::get_rounded_size(limit_size, Alignment)/Alignment + BlockCtrlUnits;
          if(biggest_block->m_size < limit_units)
             return return_type(static_cast<void*>(0), false);
 
@@ -892,13 +892,13 @@
    //Take the address where the previous block should go
    block_ctrl *root = &m_header.m_root;
    block_ctrl *prev_2_block = root;
- block_ctrl *prev_block = detail::get_pointer(root->m_next);
+ block_ctrl *prev_block = ipcdetail::get_pointer(root->m_next);
 
    while((reinterpret_cast<char*>(prev_block) + prev_block->m_size*Alignment)
             != reinterpret_cast<char*>(ptr)
          && prev_block != root){
       prev_2_block = prev_block;
- prev_block = detail::get_pointer(prev_block->m_next);
+ prev_block = ipcdetail::get_pointer(prev_block->m_next);
    }
 
    if(prev_block == root || !prev_block->m_next)
@@ -935,8 +935,8 @@
    received_size = old_block_size*Alignment - BlockCtrlBytes;
 
    //Now translate it to Alignment units
- min_size = detail::get_rounded_size(min_size, Alignment)/Alignment;
- preferred_size = detail::get_rounded_size(preferred_size, Alignment)/Alignment;
+ min_size = ipcdetail::get_rounded_size(min_size, Alignment)/Alignment;
+ preferred_size = ipcdetail::get_rounded_size(preferred_size, Alignment)/Alignment;
 
    //Some parameter checks
    if(min_size > preferred_size)
@@ -968,8 +968,8 @@
    
    //Find the previous free block of next_block
    block_ctrl *prev = &m_header.m_root;
- while(detail::get_pointer(prev->m_next) != next_block){
- prev = detail::get_pointer(prev->m_next);
+ while(ipcdetail::get_pointer(prev->m_next) != next_block){
+ prev = ipcdetail::get_pointer(prev->m_next);
    }
 
    //Now insert merged block in the free list
@@ -1056,7 +1056,7 @@
    //Pointer next always points to the first
    //(lower address) block
    block_ctrl * prev = &m_header.m_root;
- block_ctrl * pos = detail::get_pointer(m_header.m_root.m_next);
+ block_ctrl * pos = ipcdetail::get_pointer(m_header.m_root.m_next);
    block_ctrl * block = reinterpret_cast<block_ctrl*>(priv_get_block(addr));
 
    //All used blocks' next is marked with 0 so check it
@@ -1075,16 +1075,16 @@
    //This ordering comparison must be done with original pointers
    //types since their mapping to raw pointers can be different
    //in each process
- while((detail::get_pointer(pos) != &m_header.m_root) && (block > pos)){
+ while((ipcdetail::get_pointer(pos) != &m_header.m_root) && (block > pos)){
       prev = pos;
- pos = detail::get_pointer(pos->m_next);
+ pos = ipcdetail::get_pointer(pos->m_next);
    }
 
    //Try to combine with upper block
- char *block_char_ptr = reinterpret_cast<char*>(detail::get_pointer(block));
+ char *block_char_ptr = reinterpret_cast<char*>(ipcdetail::get_pointer(block));
 
    if ((block_char_ptr + Alignment*block->m_size) ==
- reinterpret_cast<char*>(detail::get_pointer(pos))){
+ reinterpret_cast<char*>(ipcdetail::get_pointer(pos))){
       block->m_size += pos->m_size;
       block->m_next = pos->m_next;
    }
@@ -1093,7 +1093,7 @@
    }
 
    //Try to combine with lower block
- if ((reinterpret_cast<char*>(detail::get_pointer(prev))
+ if ((reinterpret_cast<char*>(ipcdetail::get_pointer(prev))
             + Alignment*prev->m_size) ==
         block_char_ptr){
 
@@ -1106,7 +1106,7 @@
    }
 }
 
-} //namespace detail {
+} //namespace ipcdetail {
 
 } //namespace interprocess {
 

Modified: trunk/boost/interprocess/mem_algo/rbtree_best_fit.hpp
==============================================================================
--- trunk/boost/interprocess/mem_algo/rbtree_best_fit.hpp (original)
+++ trunk/boost/interprocess/mem_algo/rbtree_best_fit.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -23,7 +23,7 @@
 #include <boost/interprocess/interprocess_fwd.hpp>
 #include <boost/interprocess/mem_algo/detail/mem_algo_common.hpp>
 #include <boost/interprocess/containers/allocation_type.hpp>
-#include <boost/interprocess/containers/container/detail/multiallocation_chain.hpp>
+#include <boost/container/detail/multiallocation_chain.hpp>
 #include <boost/interprocess/offset_ptr.hpp>
 #include <boost/interprocess/sync/interprocess_mutex.hpp>
 #include <boost/interprocess/exceptions.hpp>
@@ -153,9 +153,9 @@
       size_type m_size;
    } m_header;
 
- friend class detail::memory_algorithm_common<rbtree_best_fit>;
+ friend class ipcdetail::memory_algorithm_common<rbtree_best_fit>;
    
- typedef detail::memory_algorithm_common<rbtree_best_fit> algo_impl_t;
+ typedef ipcdetail::memory_algorithm_common<rbtree_best_fit> algo_impl_t;
 
    public:
    /// @endcond
@@ -348,11 +348,11 @@
    //Due to rbtree size optimizations, Alignment must have at least pointer alignment
    BOOST_STATIC_ASSERT((Alignment >= ::boost::alignment_of<void_pointer>::value));
    static const size_type AlignmentMask = (Alignment - 1);
- static const size_type BlockCtrlBytes = detail::ct_rounded_size<sizeof(block_ctrl), Alignment>::value;
+ static const size_type BlockCtrlBytes = ipcdetail::ct_rounded_size<sizeof(block_ctrl), Alignment>::value;
    static const size_type BlockCtrlUnits = BlockCtrlBytes/Alignment;
- static const size_type AllocatedCtrlBytes = detail::ct_rounded_size<sizeof(SizeHolder), Alignment>::value;
+ static const size_type AllocatedCtrlBytes = ipcdetail::ct_rounded_size<sizeof(SizeHolder), Alignment>::value;
    static const size_type AllocatedCtrlUnits = AllocatedCtrlBytes/Alignment;
- static const size_type EndCtrlBlockBytes = detail::ct_rounded_size<sizeof(SizeHolder), Alignment>::value;
+ static const size_type EndCtrlBlockBytes = ipcdetail::ct_rounded_size<sizeof(SizeHolder), Alignment>::value;
    static const size_type EndCtrlBlockUnits = EndCtrlBlockBytes/Alignment;
    static const size_type MinBlockUnits = BlockCtrlUnits;
    static const size_type UsableByPreviousChunk = sizeof(size_type);
@@ -373,7 +373,7 @@
 {
    size_type uint_this = (std::size_t)this_ptr;
    size_type main_hdr_end = uint_this + sizeof(rbtree_best_fit) + extra_hdr_bytes;
- size_type aligned_main_hdr_end = detail::get_rounded_size(main_hdr_end, Alignment);
+ size_type aligned_main_hdr_end = ipcdetail::get_rounded_size(main_hdr_end, Alignment);
    size_type block1_off = aligned_main_hdr_end - uint_this;
    algo_impl_t::assert_alignment(aligned_main_hdr_end);
    algo_impl_t::assert_alignment(uint_this + block1_off);
@@ -979,13 +979,13 @@
 
       if(it != m_header.m_imultiset.end()){
          return return_type(this->priv_check_and_allocate
- (preferred_units, detail::get_pointer(&*it), received_size), false);
+ (preferred_units, ipcdetail::get_pointer(&*it), received_size), false);
       }
 
       if(it != m_header.m_imultiset.begin()&&
               (--it)->m_size >= limit_units){
          return return_type(this->priv_check_and_allocate
- (it->m_size, detail::get_pointer(&*it), received_size), false);
+ (it->m_size, ipcdetail::get_pointer(&*it), received_size), false);
       }
    }
 
@@ -1022,7 +1022,7 @@
 {
    if(userbytes < UsableByPreviousChunk)
       userbytes = UsableByPreviousChunk;
- size_type units = detail::get_rounded_size(userbytes - UsableByPreviousChunk, Alignment)/Alignment + AllocatedCtrlUnits;
+ size_type units = ipcdetail::get_rounded_size(userbytes - UsableByPreviousChunk, Alignment)/Alignment + AllocatedCtrlUnits;
    if(units < BlockCtrlUnits) units = BlockCtrlUnits;
    return units;
 }

Modified: trunk/boost/interprocess/mem_algo/simple_seq_fit.hpp
==============================================================================
--- trunk/boost/interprocess/mem_algo/simple_seq_fit.hpp (original)
+++ trunk/boost/interprocess/mem_algo/simple_seq_fit.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -32,10 +32,10 @@
 //!linked list of free buffers.
 template<class MutexFamily, class VoidPointer>
 class simple_seq_fit
- : public detail::simple_seq_fit_impl<MutexFamily, VoidPointer>
+ : public ipcdetail::simple_seq_fit_impl<MutexFamily, VoidPointer>
 {
    /// @cond
- typedef detail::simple_seq_fit_impl<MutexFamily, VoidPointer> base_t;
+ typedef ipcdetail::simple_seq_fit_impl<MutexFamily, VoidPointer> base_t;
    /// @endcond
 
    public:

Modified: trunk/boost/interprocess/offset_ptr.hpp
==============================================================================
--- trunk/boost/interprocess/offset_ptr.hpp (original)
+++ trunk/boost/interprocess/offset_ptr.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -121,7 +121,7 @@
 
    public:
    typedef PointedType * pointer;
- typedef typename detail::
+ typedef typename ipcdetail::
       add_reference<PointedType>::type reference;
    typedef PointedType value_type;
    typedef DifferenceType difference_type;
@@ -154,25 +154,25 @@
    //!Emulates static_cast operator.
    //!Never throws.
    template<class T2, class P2, class O2, std::size_t A2>
- offset_ptr(const offset_ptr<T2, P2, O2, A2> & r, detail::static_cast_tag)
+ offset_ptr(const offset_ptr<T2, P2, O2, A2> & r, ipcdetail::static_cast_tag)
    { this->set_offset(static_cast<PointedType*>(r.get())); }
 
    //!Emulates const_cast operator.
    //!Never throws.
    template<class T2, class P2, class O2, std::size_t A2>
- offset_ptr(const offset_ptr<T2, P2, O2, A2> & r, detail::const_cast_tag)
+ offset_ptr(const offset_ptr<T2, P2, O2, A2> & r, ipcdetail::const_cast_tag)
    { this->set_offset(const_cast<PointedType*>(r.get())); }
 
    //!Emulates dynamic_cast operator.
    //!Never throws.
    template<class T2, class P2, class O2, std::size_t A2>
- offset_ptr(const offset_ptr<T2, P2, O2, A2> & r, detail::dynamic_cast_tag)
+ offset_ptr(const offset_ptr<T2, P2, O2, A2> & r, ipcdetail::dynamic_cast_tag)
    { this->set_offset(dynamic_cast<PointedType*>(r.get())); }
 
    //!Emulates reinterpret_cast operator.
    //!Never throws.
    template<class T2, class P2, class O2, std::size_t A2>
- offset_ptr(const offset_ptr<T2, P2, O2, A2> & r, detail::reinterpret_cast_tag)
+ offset_ptr(const offset_ptr<T2, P2, O2, A2> & r, ipcdetail::reinterpret_cast_tag)
    { this->set_offset(reinterpret_cast<PointedType*>(r.get())); }
 
    //!Obtains raw pointer from offset.
@@ -368,7 +368,7 @@
    static_pointer_cast(const boost::interprocess::offset_ptr<T2, P2, O2, A2> & r)
 {
    return boost::interprocess::offset_ptr<T1, P1, O1, A1>
- (r, boost::interprocess::detail::static_cast_tag());
+ (r, boost::interprocess::ipcdetail::static_cast_tag());
 }
 
 //!Simulation of const_cast between pointers. Never throws.
@@ -377,7 +377,7 @@
    const_pointer_cast(const boost::interprocess::offset_ptr<T2, P2, O2, A2> & r)
 {
    return boost::interprocess::offset_ptr<T1, P1, O1, A1>
- (r, boost::interprocess::detail::const_cast_tag());
+ (r, boost::interprocess::ipcdetail::const_cast_tag());
 }
 
 //!Simulation of dynamic_cast between pointers. Never throws.
@@ -386,7 +386,7 @@
    dynamic_pointer_cast(const boost::interprocess::offset_ptr<T2, P2, O2, A2> & r)
 {
    return boost::interprocess::offset_ptr<T1, P1, O1, A1>
- (r, boost::interprocess::detail::dynamic_cast_tag());
+ (r, boost::interprocess::ipcdetail::dynamic_cast_tag());
 }
 
 //!Simulation of reinterpret_cast between pointers. Never throws.
@@ -395,7 +395,7 @@
    reinterpret_pointer_cast(const boost::interprocess::offset_ptr<T2, P2, O2, A2> & r)
 {
    return boost::interprocess::offset_ptr<T1, P1, O1, A1>
- (r, boost::interprocess::detail::reinterpret_cast_tag());
+ (r, boost::interprocess::ipcdetail::reinterpret_cast_tag());
 }
 
 } //namespace interprocess {
@@ -448,7 +448,7 @@
 {
    //The offset ptr can embed one bit less than the alignment since it
    //uses offset == 1 to store the null pointer.
- static const std::size_t value = ::boost::interprocess::detail::ls_zeros<OffsetAlignment>::value - 1;
+ static const std::size_t value = ::boost::interprocess::ipcdetail::ls_zeros<OffsetAlignment>::value - 1;
 };
 
 //Predeclaration

Modified: trunk/boost/interprocess/permissions.hpp
==============================================================================
--- trunk/boost/interprocess/permissions.hpp (original)
+++ trunk/boost/interprocess/permissions.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -39,7 +39,7 @@
 
 #if defined(BOOST_INTERPROCESS_WINDOWS)
 
-namespace detail {
+namespace ipcdetail {
 
 template <int Dummy>
 struct unrestricted_permissions_holder
@@ -50,7 +50,7 @@
 template<int Dummy>
 winapi::interprocess_all_access_security unrestricted_permissions_holder<Dummy>::unrestricted;
 
-} //namespace detail {
+} //namespace ipcdetail {
 
 #endif //defined BOOST_INTERPROCESS_WINDOWS
 
@@ -105,7 +105,7 @@
    {
       /// @cond
       #if defined (BOOST_INTERPROCESS_WINDOWS)
- m_perm = &detail::unrestricted_permissions_holder<0>::unrestricted;
+ m_perm = &ipcdetail::unrestricted_permissions_holder<0>::unrestricted;
       #else
       m_perm = 0666;
       #endif

Modified: trunk/boost/interprocess/segment_manager.hpp
==============================================================================
--- trunk/boost/interprocess/segment_manager.hpp (original)
+++ trunk/boost/interprocess/segment_manager.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -251,9 +251,9 @@
    /// @cond
    protected:
    void * prot_anonymous_construct
- (size_type num, bool dothrow, detail::in_place_interface &table)
+ (size_type num, bool dothrow, ipcdetail::in_place_interface &table)
    {
- typedef detail::block_header<size_type> block_header_t;
+ typedef ipcdetail::block_header<size_type> block_header_t;
       block_header_t block_info ( size_type(table.size*num)
                                  , size_type(table.alignment)
                                  , anonymous_type
@@ -274,7 +274,7 @@
       }
 
       //Build scoped ptr to avoid leaks with constructor exception
- detail::mem_algo_deallocator<MemoryAlgorithm> mem(ptr_struct, *this);
+ ipcdetail::mem_algo_deallocator<MemoryAlgorithm> mem(ptr_struct, *this);
 
       //Now construct the header
       block_header_t * hdr = new(ptr_struct) block_header_t(block_info);
@@ -282,7 +282,7 @@
       ptr = hdr->value();
 
       //Now call constructors
- detail::array_construct(ptr, num, table);
+ ipcdetail::array_construct(ptr, num, table);
 
       //All constructors successful, we don't want erase memory
       mem.release();
@@ -290,11 +290,11 @@
    }
 
    //!Calls the destructor and makes an anonymous deallocate
- void prot_anonymous_destroy(const void *object, detail::in_place_interface &table)
+ void prot_anonymous_destroy(const void *object, ipcdetail::in_place_interface &table)
    {
 
       //Get control data from associated with this object
- typedef detail::block_header<size_type> block_header_t;
+ typedef ipcdetail::block_header<size_type> block_header_t;
       block_header_t *ctrl_data = block_header_t::block_header_from_value(object, table.size, table.alignment);
 
       //-------------------------------
@@ -358,22 +358,22 @@
 
    /// @cond
    private:
- typedef detail::block_header<size_type> block_header_t;
- typedef detail::index_config<CharType, MemoryAlgorithm> index_config_named;
- typedef detail::index_config<char, MemoryAlgorithm> index_config_unique;
+ typedef ipcdetail::block_header<size_type> block_header_t;
+ typedef ipcdetail::index_config<CharType, MemoryAlgorithm> index_config_named;
+ typedef ipcdetail::index_config<char, MemoryAlgorithm> index_config_unique;
    typedef IndexType<index_config_named> index_type;
- typedef detail::bool_<is_intrusive_index<index_type>::value > is_intrusive_t;
- typedef detail::bool_<is_node_index<index_type>::value> is_node_index_t;
+ typedef ipcdetail::bool_<is_intrusive_index<index_type>::value > is_intrusive_t;
+ typedef ipcdetail::bool_<is_node_index<index_type>::value> is_node_index_t;
 
    public:
    typedef IndexType<index_config_named> named_index_t;
    typedef IndexType<index_config_unique> unique_index_t;
- typedef detail::char_ptr_holder<CharType> char_ptr_holder_t;
- typedef detail::segment_manager_iterator_transform
+ typedef ipcdetail::char_ptr_holder<CharType> char_ptr_holder_t;
+ typedef ipcdetail::segment_manager_iterator_transform
       <typename named_index_t::const_iterator
       ,is_intrusive_index<index_type>::value> named_transform;
 
- typedef detail::segment_manager_iterator_transform
+ typedef ipcdetail::segment_manager_iterator_transform
       <typename unique_index_t::const_iterator
       ,is_intrusive_index<index_type>::value> unique_transform;
    /// @endcond
@@ -391,14 +391,14 @@
    template<class T>
    struct construct_proxy
    {
- typedef detail::named_proxy<segment_manager, T, false> type;
+ typedef ipcdetail::named_proxy<segment_manager, T, false> type;
    };
 
    //!Constructor proxy object definition helper class
    template<class T>
    struct construct_iter_proxy
    {
- typedef detail::named_proxy<segment_manager, T, true> type;
+ typedef ipcdetail::named_proxy<segment_manager, T, true> type;
    };
 
    /// @endcond
@@ -426,7 +426,7 @@
    //!and the object count. On failure the first member of the
    //!returned pair is 0.
    template <class T>
- std::pair<T*, size_type> find (const detail::unique_instance_t* name)
+ std::pair<T*, size_type> find (const ipcdetail::unique_instance_t* name)
    { return this->priv_find_impl<T>(name, true); }
 
    //!Tries to find a previous named allocation. Returns the address
@@ -440,7 +440,7 @@
    //!and the object count. On failure the first member of the
    //!returned pair is 0. This search is not mutex-protected!
    template <class T>
- std::pair<T*, size_type> find_no_lock (const detail::unique_instance_t* name)
+ std::pair<T*, size_type> find_no_lock (const ipcdetail::unique_instance_t* name)
    { return this->priv_find_impl<T>(name, false); }
 
    //!Returns throwing "construct" proxy
@@ -525,9 +525,9 @@
    //!Destroys a previously created unique instance.
    //!Returns false if the object was not present.
    template <class T>
- bool destroy(const detail::unique_instance_t *)
+ bool destroy(const ipcdetail::unique_instance_t *)
    {
- detail::placement_destroy<T> dtor;
+ ipcdetail::placement_destroy<T> dtor;
       return this->priv_generic_named_destroy<char>
          (typeid(T).name(), m_header.m_unique_index, dtor, is_intrusive_t());
    }
@@ -537,7 +537,7 @@
    template <class T>
    bool destroy(const CharType *name)
    {
- detail::placement_destroy<T> dtor;
+ ipcdetail::placement_destroy<T> dtor;
       return this->priv_generic_named_destroy<CharType>
                (name, m_header.m_named_index, dtor, is_intrusive_t());
    }
@@ -548,8 +548,8 @@
    void destroy_ptr(const T *p)
    {
       //If T is void transform it to char
- typedef typename detail::char_if_void<T>::type data_t;
- detail::placement_destroy<data_t> dtor;
+ typedef typename ipcdetail::char_if_void<T>::type data_t;
+ ipcdetail::placement_destroy<data_t> dtor;
       priv_destroy_ptr(p, dtor);
    }
 
@@ -701,7 +701,7 @@
                         size_type num,
                          bool try2find,
                          bool dothrow,
- detail::in_place_interface &table)
+ ipcdetail::in_place_interface &table)
    {
       return static_cast<T*>
          (priv_generic_construct(name, num, try2find, dothrow, table));
@@ -716,7 +716,7 @@
    {
       //The name can't be null, no anonymous object can be found by name
       BOOST_ASSERT(name != 0);
- detail::placement_destroy<T> table;
+ ipcdetail::placement_destroy<T> table;
       size_type size;
       void *ret;
 
@@ -733,9 +733,9 @@
    //!and the object count. On failure the first member of the
    //!returned pair is 0.
    template <class T>
- std::pair<T*, size_type> priv_find__impl (const detail::unique_instance_t* name, bool lock)
+ std::pair<T*, size_type> priv_find__impl (const ipcdetail::unique_instance_t* name, bool lock)
    {
- detail::placement_destroy<T> table;
+ ipcdetail::placement_destroy<T> table;
       size_type size;
       void *ret = priv_generic_find<char>(name, m_header.m_unique_index, table, size, is_intrusive_t(), lock);
       return std::pair<T*, size_type>(static_cast<T*>(ret), size);
@@ -745,7 +745,7 @@
                    size_type num,
                          bool try2find,
                          bool dothrow,
- detail::in_place_interface &table)
+ ipcdetail::in_place_interface &table)
    {
       void *ret;
       //Security overflow check
@@ -769,7 +769,7 @@
       return ret;
    }
 
- void priv_destroy_ptr(const void *ptr, detail::in_place_interface &dtor)
+ void priv_destroy_ptr(const void *ptr, ipcdetail::in_place_interface &dtor)
    {
       block_header_t *ctrl_data = block_header_t::block_header_from_value(ptr, dtor.size, dtor.alignment);
       switch(ctrl_data->alloc_type()){
@@ -838,22 +838,22 @@
    template <class CharT>
    void *priv_generic_find
       (const CharT* name,
- IndexType<detail::index_config<CharT, MemoryAlgorithm> > &index,
- detail::in_place_interface &table,
+ IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > &index,
+ ipcdetail::in_place_interface &table,
        size_type &length,
- detail::true_ is_intrusive,
+ ipcdetail::true_ is_intrusive,
        bool use_lock)
    {
       (void)is_intrusive;
- typedef IndexType<detail::index_config<CharT, MemoryAlgorithm> > index_type;
- typedef detail::index_key<CharT, void_pointer> index_key_t;
+ typedef IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > index_type;
+ typedef ipcdetail::index_key<CharT, void_pointer> index_key_t;
       typedef typename index_type::iterator index_it;
 
       //-------------------------------
       scoped_lock<rmutex> guard(priv_get_lock(use_lock));
       //-------------------------------
       //Find name in index
- detail::intrusive_compare_key<CharT> key
+ ipcdetail::intrusive_compare_key<CharT> key
          (name, std::char_traits<CharT>::length(name));
       index_it it = index.find(key);
 
@@ -878,14 +878,14 @@
    template <class CharT>
    void *priv_generic_find
       (const CharT* name,
- IndexType<detail::index_config<CharT, MemoryAlgorithm> > &index,
- detail::in_place_interface &table,
+ IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > &index,
+ ipcdetail::in_place_interface &table,
        size_type &length,
- detail::false_ is_intrusive,
+ ipcdetail::false_ is_intrusive,
        bool use_lock)
    {
       (void)is_intrusive;
- typedef IndexType<detail::index_config<CharT, MemoryAlgorithm> > index_type;
+ typedef IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > index_type;
       typedef typename index_type::key_type key_type;
       typedef typename index_type::iterator index_it;
 
@@ -903,7 +903,7 @@
       if(it != index.end()){
          //Get header
          block_header_t *ctrl_data = reinterpret_cast<block_header_t*>
- (detail::get_pointer(it->second.m_ptr));
+ (ipcdetail::get_pointer(it->second.m_ptr));
 
          //Sanity check
          BOOST_ASSERT((ctrl_data->m_value_bytes % table.size) == 0);
@@ -917,12 +917,12 @@
    template <class CharT>
    bool priv_generic_named_destroy
      (block_header_t *block_header,
- IndexType<detail::index_config<CharT, MemoryAlgorithm> > &index,
- detail::in_place_interface &table,
- detail::true_ is_node_index)
+ IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > &index,
+ ipcdetail::in_place_interface &table,
+ ipcdetail::true_ is_node_index)
    {
       (void)is_node_index;
- typedef typename IndexType<detail::index_config<CharT, MemoryAlgorithm> >::iterator index_it;
+ typedef typename IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> >::iterator index_it;
 
       index_it *ihdr = block_header_t::template to_first_header<index_it>(block_header);
       return this->priv_generic_named_destroy_impl<CharT>(*ihdr, index, table);
@@ -931,9 +931,9 @@
    template <class CharT>
    bool priv_generic_named_destroy
      (block_header_t *block_header,
- IndexType<detail::index_config<CharT, MemoryAlgorithm> > &index,
- detail::in_place_interface &table,
- detail::false_ is_node_index)
+ IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > &index,
+ ipcdetail::in_place_interface &table,
+ ipcdetail::false_ is_node_index)
    {
       (void)is_node_index;
       CharT *name = static_cast<CharT*>(block_header->template name<CharT>());
@@ -942,13 +942,13 @@
 
    template <class CharT>
    bool priv_generic_named_destroy(const CharT *name,
- IndexType<detail::index_config<CharT, MemoryAlgorithm> > &index,
- detail::in_place_interface &table,
- detail::true_ is_intrusive_index)
+ IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > &index,
+ ipcdetail::in_place_interface &table,
+ ipcdetail::true_ is_intrusive_index)
    {
       (void)is_intrusive_index;
- typedef IndexType<detail::index_config<CharT, MemoryAlgorithm> > index_type;
- typedef detail::index_key<CharT, void_pointer> index_key_t;
+ typedef IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > index_type;
+ typedef ipcdetail::index_key<CharT, void_pointer> index_key_t;
       typedef typename index_type::iterator index_it;
       typedef typename index_type::value_type intrusive_value_type;
       
@@ -956,7 +956,7 @@
       scoped_lock<rmutex> guard(m_header);
       //-------------------------------
       //Find name in index
- detail::intrusive_compare_key<CharT> key
+ ipcdetail::intrusive_compare_key<CharT> key
          (name, std::char_traits<CharT>::length(name));
       index_it it = index.find(key);
 
@@ -993,12 +993,12 @@
 
    template <class CharT>
    bool priv_generic_named_destroy(const CharT *name,
- IndexType<detail::index_config<CharT, MemoryAlgorithm> > &index,
- detail::in_place_interface &table,
- detail::false_ is_intrusive_index)
+ IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > &index,
+ ipcdetail::in_place_interface &table,
+ ipcdetail::false_ is_intrusive_index)
    {
       (void)is_intrusive_index;
- typedef IndexType<detail::index_config<CharT, MemoryAlgorithm> > index_type;
+ typedef IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > index_type;
       typedef typename index_type::iterator index_it;
       typedef typename index_type::key_type key_type;
 
@@ -1020,16 +1020,16 @@
 
    template <class CharT>
    bool priv_generic_named_destroy_impl
- (const typename IndexType<detail::index_config<CharT, MemoryAlgorithm> >::iterator &it,
- IndexType<detail::index_config<CharT, MemoryAlgorithm> > &index,
- detail::in_place_interface &table)
+ (const typename IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> >::iterator &it,
+ IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > &index,
+ ipcdetail::in_place_interface &table)
    {
- typedef IndexType<detail::index_config<CharT, MemoryAlgorithm> > index_type;
+ typedef IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > index_type;
       typedef typename index_type::iterator index_it;
 
       //Get allocation parameters
       block_header_t *ctrl_data = reinterpret_cast<block_header_t*>
- (detail::get_pointer(it->second.m_ptr));
+ (ipcdetail::get_pointer(it->second.m_ptr));
       char *stored_name = static_cast<char*>(static_cast<void*>(const_cast<CharT*>(it->first.name())));
       (void)stored_name;
 
@@ -1073,9 +1073,9 @@
                         size_type num,
                                bool try2find,
                                bool dothrow,
- detail::in_place_interface &table,
- IndexType<detail::index_config<CharT, MemoryAlgorithm> > &index,
- detail::true_ is_intrusive)
+ ipcdetail::in_place_interface &table,
+ IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > &index,
+ ipcdetail::true_ is_intrusive)
    {
       (void)is_intrusive;
      std::size_t namelen = std::char_traits<CharT>::length(name);
@@ -1086,7 +1086,7 @@
                                  , sizeof(CharT)
                                  , namelen);
 
- typedef IndexType<detail::index_config<CharT, MemoryAlgorithm> > index_type;
+ typedef IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > index_type;
       typedef typename index_type::iterator index_it;
       typedef std::pair<index_it, bool> index_ib;
 
@@ -1110,7 +1110,7 @@
       typedef typename index_type::value_type intrusive_value_type;
 
       BOOST_TRY{
- detail::intrusive_compare_key<CharT> key(name, namelen);
+ ipcdetail::intrusive_compare_key<CharT> key(name, namelen);
          insert_ret = index.insert_check(key, commit_data);
       }
       //Ignore exceptions
@@ -1176,7 +1176,7 @@
 
       //Avoid constructions if constructor is trivial
       //Build scoped ptr to avoid leaks with constructor exception
- detail::mem_algo_deallocator<segment_manager_base_type> mem
+ ipcdetail::mem_algo_deallocator<segment_manager_base_type> mem
          (buffer_ptr, *static_cast<segment_manager_base_type*>(this));
 
       //Initialize the node value_eraser to erase inserted node
@@ -1186,7 +1186,7 @@
       value_eraser<index_type> v_eraser(index, it);
       
       //Construct array, this can throw
- detail::array_construct(ptr, num, table);
+ ipcdetail::array_construct(ptr, num, table);
 
       //Release rollbacks since construction was successful
       v_eraser.release();
@@ -1202,9 +1202,9 @@
                         size_type num,
                                bool try2find,
                                bool dothrow,
- detail::in_place_interface &table,
- IndexType<detail::index_config<CharT, MemoryAlgorithm> > &index,
- detail::false_ is_intrusive)
+ ipcdetail::in_place_interface &table,
+ IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > &index,
+ ipcdetail::false_ is_intrusive)
    {
       (void)is_intrusive;
       std::size_t namelen = std::char_traits<CharT>::length(name);
@@ -1215,7 +1215,7 @@
                                  , sizeof(CharT)
                                  , namelen);
 
- typedef IndexType<detail::index_config<CharT, MemoryAlgorithm> > index_type;
+ typedef IndexType<ipcdetail::index_config<CharT, MemoryAlgorithm> > index_type;
       typedef typename index_type::key_type key_type;
       typedef typename index_type::mapped_type mapped_type;
       typedef typename index_type::value_type value_type;
@@ -1255,7 +1255,7 @@
       if(!insert_ret.second){
          if(try2find){
             block_header_t *hdr = static_cast<block_header_t*>
- (detail::get_pointer(it->second.m_ptr));
+ (ipcdetail::get_pointer(it->second.m_ptr));
             return hdr->value();
          }
          return 0;
@@ -1309,11 +1309,11 @@
       it->second.m_ptr = hdr;
 
       //Build scoped ptr to avoid leaks with constructor exception
- detail::mem_algo_deallocator<segment_manager_base_type> mem
+ ipcdetail::mem_algo_deallocator<segment_manager_base_type> mem
          (buffer_ptr, *static_cast<segment_manager_base_type*>(this));
 
       //Construct array, this can throw
- detail::array_construct(ptr, num, table);
+ ipcdetail::array_construct(ptr, num, table);
 
       //All constructors successful, we don't want to release memory
       mem.release();

Modified: trunk/boost/interprocess/shared_memory_object.hpp
==============================================================================
--- trunk/boost/interprocess/shared_memory_object.hpp (original)
+++ trunk/boost/interprocess/shared_memory_object.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -63,24 +63,24 @@
    //!Creates a shared memory object with name "name" and mode "mode", with the access mode "mode"
    //!If the file previously exists, throws an error.*/
    shared_memory_object(create_only_t, const char *name, mode_t mode, const permissions &perm = permissions())
- { this->priv_open_or_create(detail::DoCreate, name, mode, perm); }
+ { this->priv_open_or_create(ipcdetail::DoCreate, name, mode, perm); }
 
    //!Tries to create a shared memory object with name "name" and mode "mode", with the
    //!access mode "mode". If the file previously exists, it tries to open it with mode "mode".
    //!Otherwise throws an error.
    shared_memory_object(open_or_create_t, const char *name, mode_t mode, const permissions &perm = permissions())
- { this->priv_open_or_create(detail::DoOpenOrCreate, name, mode, perm); }
+ { this->priv_open_or_create(ipcdetail::DoOpenOrCreate, name, mode, perm); }
 
    //!Tries to open a shared memory object with name "name", with the access mode "mode".
    //!If the file does not previously exist, it throws an error.
    shared_memory_object(open_only_t, const char *name, mode_t mode)
- { this->priv_open_or_create(detail::DoOpen, name, mode, permissions()); }
+ { this->priv_open_or_create(ipcdetail::DoOpen, name, mode, permissions()); }
 
    //!Moves the ownership of "moved"'s shared memory object to *this.
    //!After the call, "moved" does not represent any shared memory object.
    //!Does not throw
    shared_memory_object(BOOST_RV_REF(shared_memory_object) moved)
- : m_handle(file_handle_t(detail::invalid_file()))
+ : m_handle(file_handle_t(ipcdetail::invalid_file()))
    { this->swap(moved); }
 
    //!Moves the ownership of "moved"'s shared memory to *this.
@@ -132,7 +132,7 @@
    void priv_close();
 
    //!Closes a previously opened file mapping. Never throws.
- bool priv_open_or_create(detail::create_enum_t type, const char *filename, mode_t mode, const permissions &perm);
+ bool priv_open_or_create(ipcdetail::create_enum_t type, const char *filename, mode_t mode, const permissions &perm);
 
    file_handle_t m_handle;
    mode_t m_mode;
@@ -143,7 +143,7 @@
 /// @cond
 
 inline shared_memory_object::shared_memory_object()
- : m_handle(file_handle_t(detail::invalid_file()))
+ : m_handle(file_handle_t(ipcdetail::invalid_file()))
 {}
 
 inline shared_memory_object::~shared_memory_object()
@@ -154,7 +154,7 @@
 { return m_filename.c_str(); }
 
 inline bool shared_memory_object::get_size(offset_t &size) const
-{ return detail::get_file_size((file_handle_t)m_handle, size); }
+{ return ipcdetail::get_file_size((file_handle_t)m_handle, size); }
 
 inline void shared_memory_object::swap(shared_memory_object &other)
 {
@@ -165,7 +165,7 @@
 
 inline mapping_handle_t shared_memory_object::get_mapping_handle() const
 {
- return detail::mapping_handle_from_file_handle(m_handle);
+ return ipcdetail::mapping_handle_from_file_handle(m_handle);
 }
 
 inline mode_t shared_memory_object::get_mode() const
@@ -174,11 +174,11 @@
 #if !defined(BOOST_INTERPROCESS_POSIX_SHARED_MEMORY_OBJECTS)
 
 inline bool shared_memory_object::priv_open_or_create
- (detail::create_enum_t type, const char *filename, mode_t mode, const permissions &perm)
+ (ipcdetail::create_enum_t type, const char *filename, mode_t mode, const permissions &perm)
 {
    m_filename = filename;
    std::string shmfile;
- detail::create_tmp_and_clean_old_and_get_filename(filename, shmfile);
+ ipcdetail::create_tmp_and_clean_old_and_get_filename(filename, shmfile);
 
    //Set accesses
    if (mode != read_write && mode != read_only){
@@ -187,14 +187,14 @@
    }
 
    switch(type){
- case detail::DoOpen:
- m_handle = detail::open_existing_file(shmfile.c_str(), mode, true);
+ case ipcdetail::DoOpen:
+ m_handle = ipcdetail::open_existing_file(shmfile.c_str(), mode, true);
       break;
- case detail::DoCreate:
- m_handle = detail::create_new_file(shmfile.c_str(), mode, perm, true);
+ case ipcdetail::DoCreate:
+ m_handle = ipcdetail::create_new_file(shmfile.c_str(), mode, perm, true);
       break;
- case detail::DoOpenOrCreate:
- m_handle = detail::create_or_open_file(shmfile.c_str(), mode, perm, true);
+ case ipcdetail::DoOpenOrCreate:
+ m_handle = ipcdetail::create_or_open_file(shmfile.c_str(), mode, perm, true);
       break;
       default:
          {
@@ -204,7 +204,7 @@
    }
 
    //Check for error
- if(m_handle == detail::invalid_file()){
+ if(m_handle == ipcdetail::invalid_file()){
       error_info err = system_error_code();
       this->priv_close();
       throw interprocess_exception(err);
@@ -219,8 +219,8 @@
    try{
       //Make sure a temporary path is created for shared memory
       std::string shmfile;
- detail::tmp_filename(filename, shmfile);
- return detail::delete_file(shmfile.c_str());
+ ipcdetail::tmp_filename(filename, shmfile);
+ return ipcdetail::delete_file(shmfile.c_str());
    }
    catch(...){
       return false;
@@ -229,7 +229,7 @@
 
 inline void shared_memory_object::truncate(offset_t length)
 {
- if(!detail::truncate_file(m_handle, length)){
+ if(!ipcdetail::truncate_file(m_handle, length)){
       error_info err = system_error_code();
       throw interprocess_exception(err);
    }
@@ -237,9 +237,9 @@
 
 inline void shared_memory_object::priv_close()
 {
- if(m_handle != detail::invalid_file()){
- detail::close_file(m_handle);
- m_handle = detail::invalid_file();
+ if(m_handle != ipcdetail::invalid_file()){
+ ipcdetail::close_file(m_handle);
+ m_handle = ipcdetail::invalid_file();
    }
 }
 
@@ -268,22 +268,22 @@
 } //shared_memory_object_detail
 
 inline bool shared_memory_object::priv_open_or_create
- (detail::create_enum_t type,
+ (ipcdetail::create_enum_t type,
     const char *filename,
     mode_t mode, const permissions &perm)
 {
    #if defined(BOOST_INTERPROCESS_FILESYSTEM_BASED_POSIX_SHARED_MEMORY)
    const bool add_leading_slash = false;
    #elif defined(BOOST_INTERPROCESS_RUNTIME_FILESYSTEM_BASED_POSIX_SHARED_MEMORY)
- const bool add_leading_slash = !shared_memory_object_detail::use_filesistem_based_posix();
+ const bool add_leading_slash = !shared_memory_object_ipcdetail::use_filesistem_based_posix();
    #else
    const bool add_leading_slash = true;
    #endif
    if(add_leading_slash){
- detail::add_leading_slash(filename, m_filename);
+ ipcdetail::add_leading_slash(filename, m_filename);
    }
    else{
- detail::create_tmp_and_clean_old_and_get_filename(filename, m_filename);
+ ipcdetail::create_tmp_and_clean_old_and_get_filename(filename, m_filename);
    }
 
    //Create new mapping
@@ -301,13 +301,13 @@
    int unix_perm = perm.get_permissions();
 
    switch(type){
- case detail::DoOpen:
+ case ipcdetail::DoOpen:
       {
          //No oflag addition
          m_handle = shm_open(m_filename.c_str(), oflag, unix_perm);
       }
       break;
- case detail::DoCreate:
+ case ipcdetail::DoCreate:
       {
          oflag |= (O_CREAT | O_EXCL);
          m_handle = shm_open(m_filename.c_str(), oflag, unix_perm);
@@ -316,7 +316,7 @@
          }
       }
       break;
- case detail::DoOpenOrCreate:
+ case ipcdetail::DoOpenOrCreate:
       {
          oflag |= O_CREAT;
          //We need a loop to change permissions correctly using fchmod, since
@@ -361,15 +361,15 @@
       #if defined(BOOST_INTERPROCESS_FILESYSTEM_BASED_POSIX_SHARED_MEMORY)
       const bool add_leading_slash = false;
       #elif defined(BOOST_INTERPROCESS_RUNTIME_FILESYSTEM_BASED_POSIX_SHARED_MEMORY)
- const bool add_leading_slash = !shared_memory_object_detail::use_filesistem_based_posix();
+ const bool add_leading_slash = !shared_memory_object_ipcdetail::use_filesistem_based_posix();
       #else
       const bool add_leading_slash = true;
       #endif
       if(add_leading_slash){
- detail::add_leading_slash(filename, file_str);
+ ipcdetail::add_leading_slash(filename, file_str);
       }
       else{
- detail::tmp_filename(filename, file_str);
+ ipcdetail::tmp_filename(filename, file_str);
       }
       return 0 == shm_unlink(file_str.c_str());
    }

Modified: trunk/boost/interprocess/smart_ptr/deleter.hpp
==============================================================================
--- trunk/boost/interprocess/smart_ptr/deleter.hpp (original)
+++ trunk/boost/interprocess/smart_ptr/deleter.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -51,7 +51,7 @@
    {}
 
    void operator()(const pointer &p)
- { mp_mngr->destroy_ptr(detail::get_pointer(p)); }
+ { mp_mngr->destroy_ptr(ipcdetail::get_pointer(p)); }
 };
 
 } //namespace interprocess {

Modified: trunk/boost/interprocess/smart_ptr/detail/shared_count.hpp
==============================================================================
--- trunk/boost/interprocess/smart_ptr/detail/shared_count.hpp (original)
+++ trunk/boost/interprocess/smart_ptr/detail/shared_count.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -33,7 +33,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail{
+namespace ipcdetail{
 
 template<class T, class VoidAllocator, class Deleter>
 class weak_count;
@@ -92,7 +92,7 @@
                         deallocator(m_pi, alloc);
             //It's more correct to use VoidAllocator::construct but
             //this needs copy constructor and we don't like it
- new(detail::get_pointer(m_pi))counted_impl(p, a, d);
+ new(ipcdetail::get_pointer(m_pi))counted_impl(p, a, d);
             deallocator.release();
          }
       }
@@ -177,7 +177,7 @@
    }
 
    void swap(shared_count & r) // nothrow
- { detail::do_swap(m_px, r.m_px); detail::do_swap(m_pi, r.m_pi); }
+ { ipcdetail::do_swap(m_px, r.m_px); ipcdetail::do_swap(m_pi, r.m_pi); }
 
    long use_count() const // nothrow
    { return m_pi != 0? m_pi->use_count(): 0; }
@@ -288,7 +288,7 @@
    }
 
    void swap(weak_count & r) // nothrow
- { detail::do_swap(m_px, r.m_px); detail::do_swap(m_pi, r.m_pi); }
+ { ipcdetail::do_swap(m_px, r.m_px); ipcdetail::do_swap(m_pi, r.m_pi); }
 
    long use_count() const // nothrow
    { return m_pi != 0? m_pi->use_count() : 0; }
@@ -310,7 +310,7 @@
 bool operator<(weak_count<T, VoidAllocator, Deleter> const & a, weak_count<T2, VoidAllocator2, Deleter2> const & b)
 { return a.internal_less(b); }
 
-} // namespace detail
+} // namespace ipcdetail
 } // namespace interprocess
 } // namespace boost
 

Modified: trunk/boost/interprocess/smart_ptr/detail/sp_counted_base_atomic.hpp
==============================================================================
--- trunk/boost/interprocess/smart_ptr/detail/sp_counted_base_atomic.hpp (original)
+++ trunk/boost/interprocess/smart_ptr/detail/sp_counted_base_atomic.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -32,7 +32,7 @@
 
 namespace interprocess {
 
-namespace detail {
+namespace ipcdetail {
 
 class sp_counted_base
 {
@@ -54,7 +54,7 @@
 
     void add_ref_copy()
     {
- detail::atomic_inc32( &use_count_ );
+ ipcdetail::atomic_inc32( &use_count_ );
     }
 
     bool add_ref_lock() // true on success
@@ -63,25 +63,25 @@
         {
             boost::uint32_t tmp = static_cast< boost::uint32_t const volatile& >( use_count_ );
             if( tmp == 0 ) return false;
- if( detail::atomic_cas32( &use_count_, tmp + 1, tmp ) == tmp )
+ if( ipcdetail::atomic_cas32( &use_count_, tmp + 1, tmp ) == tmp )
                return true;
         }
     }
 
    bool ref_release() // nothrow
- { return 1 == detail::atomic_dec32( &use_count_ ); }
+ { return 1 == ipcdetail::atomic_dec32( &use_count_ ); }
 
    void weak_add_ref() // nothrow
- { detail::atomic_inc32( &weak_count_ ); }
+ { ipcdetail::atomic_inc32( &weak_count_ ); }
 
    bool weak_release() // nothrow
- { return 1 == detail::atomic_dec32( &weak_count_ ); }
+ { return 1 == ipcdetail::atomic_dec32( &weak_count_ ); }
 
    long use_count() const // nothrow
    { return (long)static_cast<boost::uint32_t const volatile &>( use_count_ ); }
 };
 
-} // namespace detail
+} // namespace ipcdetail
 
 } // namespace interprocess
 

Modified: trunk/boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp
==============================================================================
--- trunk/boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp (original)
+++ trunk/boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -32,7 +32,7 @@
 
 namespace interprocess {
 
-namespace detail {
+namespace ipcdetail {
 
 //!A deleter for scoped_ptr that deallocates the memory
 //!allocated for an object using a STL allocator.
@@ -40,10 +40,10 @@
 struct scoped_ptr_dealloc_functor
 {
    typedef typename Allocator::pointer pointer;
- typedef detail::integral_constant<unsigned,
+ typedef ipcdetail::integral_constant<unsigned,
       boost::interprocess::version<Allocator>::value> alloc_version;
- typedef detail::integral_constant<unsigned, 1> allocator_v1;
- typedef detail::integral_constant<unsigned, 2> allocator_v2;
+ typedef ipcdetail::integral_constant<unsigned, 1> allocator_v1;
+ typedef ipcdetail::integral_constant<unsigned, 2> allocator_v2;
 
    private:
    void priv_deallocate(const typename Allocator::pointer &p, allocator_v1)
@@ -115,7 +115,7 @@
       scoped_ptr< this_type, scoped_ptr_dealloc_functor<this_allocator> >
          deleter(this_ptr, a_copy);
       typedef typename this_allocator::value_type value_type;
- detail::get_pointer(this_ptr)->~value_type();
+ ipcdetail::get_pointer(this_ptr)->~value_type();
    }
 
    void release() // nothrow
@@ -135,7 +135,7 @@
 };
 
 
-} // namespace detail
+} // namespace ipcdetail
 
 } // namespace interprocess
 

Modified: trunk/boost/interprocess/smart_ptr/enable_shared_from_this.hpp
==============================================================================
--- trunk/boost/interprocess/smart_ptr/enable_shared_from_this.hpp (original)
+++ trunk/boost/interprocess/smart_ptr/enable_shared_from_this.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -53,14 +53,14 @@
    shared_ptr<T, A, D> shared_from_this()
    {
       shared_ptr<T, A, D> p(_internal_weak_this);
- BOOST_ASSERT(detail::get_pointer(p.get()) == this);
+ BOOST_ASSERT(ipcdetail::get_pointer(p.get()) == this);
       return p;
    }
 
    shared_ptr<T const, A, D> shared_from_this() const
    {
       shared_ptr<T const, A, D> p(_internal_weak_this);
- BOOST_ASSERT(detail::get_pointer(p.get()) == this);
+ BOOST_ASSERT(ipcdetail::get_pointer(p.get()) == this);
       return p;
    }
 

Modified: trunk/boost/interprocess/smart_ptr/intrusive_ptr.hpp
==============================================================================
--- trunk/boost/interprocess/smart_ptr/intrusive_ptr.hpp (original)
+++ trunk/boost/interprocess/smart_ptr/intrusive_ptr.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -72,7 +72,7 @@
    //!Does not throw
    intrusive_ptr(const pointer &p, bool add_ref = true): m_ptr(p)
    {
- if(m_ptr != 0 && add_ref) intrusive_ptr_add_ref(detail::get_pointer(m_ptr));
+ if(m_ptr != 0 && add_ref) intrusive_ptr_add_ref(ipcdetail::get_pointer(m_ptr));
    }
 
    //!Copy constructor. Copies the internal pointer and if "p" is not
@@ -80,7 +80,7 @@
    intrusive_ptr(intrusive_ptr const & rhs)
       : m_ptr(rhs.m_ptr)
    {
- if(m_ptr != 0) intrusive_ptr_add_ref(detail::get_pointer(m_ptr));
+ if(m_ptr != 0) intrusive_ptr_add_ref(ipcdetail::get_pointer(m_ptr));
    }
 
    //!Constructor from related. Copies the internal pointer and if "p" is not
@@ -89,14 +89,14 @@
       (intrusive_ptr<U, VP> const & rhs)
       : m_ptr(rhs.get())
    {
- if(m_ptr != 0) intrusive_ptr_add_ref(detail::get_pointer(m_ptr));
+ if(m_ptr != 0) intrusive_ptr_add_ref(ipcdetail::get_pointer(m_ptr));
    }
 
    //!Destructor. If internal pointer is not 0, calls
    //!intrusive_ptr_release(get_pointer(m_ptr)). Does not throw
    ~intrusive_ptr()
    {
- if(m_ptr != 0) intrusive_ptr_release(detail::get_pointer(m_ptr));
+ if(m_ptr != 0) intrusive_ptr_release(ipcdetail::get_pointer(m_ptr));
    }
 
    //!Assignment operator. Equivalent to intrusive_ptr(r).swap(*this).
@@ -162,7 +162,7 @@
    //!Exchanges the contents of the two smart pointers.
    //!Does not throw
    void swap(intrusive_ptr & rhs)
- { detail::do_swap(m_ptr, rhs.m_ptr); }
+ { ipcdetail::do_swap(m_ptr, rhs.m_ptr); }
 
    /// @cond
    private:

Modified: trunk/boost/interprocess/smart_ptr/scoped_ptr.hpp
==============================================================================
--- trunk/boost/interprocess/smart_ptr/scoped_ptr.hpp (original)
+++ trunk/boost/interprocess/smart_ptr/scoped_ptr.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -45,14 +45,14 @@
    scoped_ptr & operator=(scoped_ptr const &);
 
    typedef scoped_ptr<T, Deleter> this_type;
- typedef typename detail::add_reference<T>::type reference;
+ typedef typename ipcdetail::add_reference<T>::type reference;
    /// @endcond
 
    public:
 
    typedef T element_type;
    typedef Deleter deleter_type;
- typedef typename detail::pointer_type<T, Deleter>::type pointer;
+ typedef typename ipcdetail::pointer_type<T, Deleter>::type pointer;
 
    //!Provides the type of the internal stored pointer
 // typedef typename boost::pointer_to_other
@@ -129,7 +129,7 @@
    //!Exchanges the internal pointer and deleter with other scoped_ptr
    //!Never throws.
    void swap(scoped_ptr & b) // never throws
- { detail::do_swap<Deleter>(*this, b); detail::do_swap(m_ptr, b.m_ptr); }
+ { ipcdetail::do_swap<Deleter>(*this, b); ipcdetail::do_swap(m_ptr, b.m_ptr); }
 
    /// @cond
    private:

Modified: trunk/boost/interprocess/smart_ptr/shared_ptr.hpp
==============================================================================
--- trunk/boost/interprocess/smart_ptr/shared_ptr.hpp (original)
+++ trunk/boost/interprocess/smart_ptr/shared_ptr.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -45,7 +45,7 @@
 template<class T, class VoidAllocator, class Deleter> class weak_ptr;
 template<class T, class VoidAllocator, class Deleter> class enable_shared_from_this;
 
-namespace detail{
+namespace ipcdetail{
 
 template<class T, class VoidAllocator, class Deleter>
 inline void sp_enable_shared_from_this
@@ -64,7 +64,7 @@
 inline void sp_enable_shared_from_this(shared_count<T, VoidAllocator, Deleter> const &, ...)
 {}
 
-} // namespace detail
+} // namespace ipcdetail
 
 //!shared_ptr stores a pointer to a dynamically allocated object.
 //!The object pointed to is guaranteed to be deleted when the last shared_ptr pointing to
@@ -99,9 +99,9 @@
    typedef T value_type;
    typedef typename boost::pointer_to_other
       <typename VoidAllocator::pointer, T>::type pointer;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <value_type>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <const value_type>::type const_reference;
    typedef typename boost::pointer_to_other
             <typename VoidAllocator::pointer, const Deleter>::type const_deleter_pointer;
@@ -126,9 +126,9 @@
       //Check that the pointer passed is of the same type that
       //the pointer the allocator defines or it's a raw pointer
       typedef typename boost::pointer_to_other<pointer, T>::type ParameterPointer;
- BOOST_STATIC_ASSERT((detail::is_same<pointer, ParameterPointer>::value) ||
- (detail::is_pointer<pointer>::value));
- detail::sp_enable_shared_from_this<T, VoidAllocator, Deleter>( m_pn, detail::get_pointer(p), detail::get_pointer(p) );
+ BOOST_STATIC_ASSERT((ipcdetail::is_same<pointer, ParameterPointer>::value) ||
+ (ipcdetail::is_pointer<pointer>::value));
+ ipcdetail::sp_enable_shared_from_this<T, VoidAllocator, Deleter>( m_pn, ipcdetail::get_pointer(p), ipcdetail::get_pointer(p) );
    }
 
 
@@ -162,24 +162,24 @@
 
    /// @cond
    template<class Y>
- shared_ptr(shared_ptr<Y, VoidAllocator, Deleter> const & r, detail::static_cast_tag)
- : m_pn( pointer(static_cast<T*>(detail::get_pointer(r.m_pn.get_pointer())))
+ shared_ptr(shared_ptr<Y, VoidAllocator, Deleter> const & r, ipcdetail::static_cast_tag)
+ : m_pn( pointer(static_cast<T*>(ipcdetail::get_pointer(r.m_pn.get_pointer())))
              , r.m_pn)
    {}
 
    template<class Y>
- shared_ptr(shared_ptr<Y, VoidAllocator, Deleter> const & r, detail::const_cast_tag)
- : m_pn( pointer(const_cast<T*>(detail::get_pointer(r.m_pn.get_pointer())))
+ shared_ptr(shared_ptr<Y, VoidAllocator, Deleter> const & r, ipcdetail::const_cast_tag)
+ : m_pn( pointer(const_cast<T*>(ipcdetail::get_pointer(r.m_pn.get_pointer())))
              , r.m_pn)
    {}
 
    template<class Y>
- shared_ptr(shared_ptr<Y, VoidAllocator, Deleter> const & r, detail::dynamic_cast_tag)
- : m_pn( pointer(dynamic_cast<T*>(detail::get_pointer(r.m_pn.get_pointer())))
+ shared_ptr(shared_ptr<Y, VoidAllocator, Deleter> const & r, ipcdetail::dynamic_cast_tag)
+ : m_pn( pointer(dynamic_cast<T*>(ipcdetail::get_pointer(r.m_pn.get_pointer())))
              , r.m_pn)
    {
       if(!m_pn.get_pointer()){ // need to allocate new counter -- the cast failed
- m_pn = detail::shared_count<T, VoidAllocator, Deleter>();
+ m_pn = ipcdetail::shared_count<T, VoidAllocator, Deleter>();
       }
    }
    /// @endcond
@@ -224,8 +224,8 @@
       //Check that the pointer passed is of the same type that
       //the pointer the allocator defines or it's a raw pointer
       typedef typename boost::pointer_to_other<Pointer, T>::type ParameterPointer;
- BOOST_STATIC_ASSERT((detail::is_same<pointer, ParameterPointer>::value) ||
- (detail::is_pointer<Pointer>::value));
+ BOOST_STATIC_ASSERT((ipcdetail::is_same<pointer, ParameterPointer>::value) ||
+ (ipcdetail::is_pointer<Pointer>::value));
       this_type(p, a, d).swap(*this);
    }
 
@@ -299,7 +299,7 @@
    template<class T2, class A2, class Deleter2> friend class shared_ptr;
    template<class T2, class A2, class Deleter2> friend class weak_ptr;
 
- detail::shared_count<T, VoidAllocator, Deleter> m_pn; // reference counter
+ ipcdetail::shared_count<T, VoidAllocator, Deleter> m_pn; // reference counter
    /// @endcond
 }; // shared_ptr
 
@@ -321,15 +321,15 @@
 
 template<class T, class VoidAllocator, class Deleter, class U> inline
 shared_ptr<T, VoidAllocator, Deleter> static_pointer_cast(shared_ptr<U, VoidAllocator, Deleter> const & r)
-{ return shared_ptr<T, VoidAllocator, Deleter>(r, detail::static_cast_tag()); }
+{ return shared_ptr<T, VoidAllocator, Deleter>(r, ipcdetail::static_cast_tag()); }
 
 template<class T, class VoidAllocator, class Deleter, class U> inline
 shared_ptr<T, VoidAllocator, Deleter> const_pointer_cast(shared_ptr<U, VoidAllocator, Deleter> const & r)
-{ return shared_ptr<T, VoidAllocator, Deleter>(r, detail::const_cast_tag()); }
+{ return shared_ptr<T, VoidAllocator, Deleter>(r, ipcdetail::const_cast_tag()); }
 
 template<class T, class VoidAllocator, class Deleter, class U> inline
 shared_ptr<T, VoidAllocator, Deleter> dynamic_pointer_cast(shared_ptr<U, VoidAllocator, Deleter> const & r)
-{ return shared_ptr<T, VoidAllocator, Deleter>(r, detail::dynamic_cast_tag()); }
+{ return shared_ptr<T, VoidAllocator, Deleter>(r, ipcdetail::dynamic_cast_tag()); }
 
 // get_pointer() enables boost::mem_fn to recognize shared_ptr
 template<class T, class VoidAllocator, class Deleter> inline

Modified: trunk/boost/interprocess/smart_ptr/unique_ptr.hpp
==============================================================================
--- trunk/boost/interprocess/smart_ptr/unique_ptr.hpp (original)
+++ trunk/boost/interprocess/smart_ptr/unique_ptr.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -38,7 +38,7 @@
 /// @cond
 template <class T, class D> class unique_ptr;
 
-namespace detail {
+namespace ipcdetail {
 
 template <class T> struct unique_ptr_error;
 
@@ -48,7 +48,7 @@
     typedef unique_ptr<T, D> type;
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 /// @endcond
 
 //!Template unique_ptr stores a pointer to an object and deletes that object
@@ -83,15 +83,15 @@
 {
    /// @cond
    struct nat {int for_bool_;};
- typedef typename detail::add_reference<D>::type deleter_reference;
- typedef typename detail::add_reference<const D>::type deleter_const_reference;
+ typedef typename ipcdetail::add_reference<D>::type deleter_reference;
+ typedef typename ipcdetail::add_reference<const D>::type deleter_const_reference;
    /// @endcond
 
    public:
 
    typedef T element_type;
    typedef D deleter_type;
- typedef typename detail::pointer_type<T, D>::type pointer;
+ typedef typename ipcdetail::pointer_type<T, D>::type pointer;
 
    //!Requires: D must be default constructible, and that construction must not
    //!throw an exception. D must not be a reference type.
@@ -128,9 +128,9 @@
    //!
    //!Throws: nothing.
    unique_ptr(pointer p
- ,typename detail::if_<detail::is_reference<D>
+ ,typename ipcdetail::if_<ipcdetail::is_reference<D>
                   ,D
- ,typename detail::add_reference<const D>::type>::type d)
+ ,typename ipcdetail::add_reference<const D>::type>::type d)
       : ptr_(p, d)
    {}
 
@@ -176,12 +176,12 @@
    //!Throws: nothing.
    template <class U, class E>
    unique_ptr(BOOST_RV_REF_2_TEMPL_ARGS(unique_ptr, U, E) u,
- typename detail::enable_if_c<
- detail::is_convertible<typename unique_ptr<U, E>::pointer, pointer>::value &&
- detail::is_convertible<E, D>::value &&
+ typename ipcdetail::enable_if_c<
+ ipcdetail::is_convertible<typename unique_ptr<U, E>::pointer, pointer>::value &&
+ ipcdetail::is_convertible<E, D>::value &&
             (
- !detail::is_reference<D>::value ||
- detail::is_same<D, E>::value
+ !ipcdetail::is_reference<D>::value ||
+ ipcdetail::is_same<D, E>::value
             )
             ,
             nat
@@ -255,7 +255,7 @@
    //!Requires: get() != 0.
    //!Returns: *get().
    //!Throws: nothing.
- typename detail::add_reference<T>::type operator*() const
+ typename ipcdetail::add_reference<T>::type operator*() const
    { return *ptr_.first(); }
 
    //!Requires: get() != 0.
@@ -327,10 +327,10 @@
    boost::compressed_pair<pointer, D> ptr_;
    BOOST_MOVABLE_BUT_NOT_COPYABLE(unique_ptr)
    template <class U, class E> unique_ptr(unique_ptr<U, E>&);
- template <class U> unique_ptr(U&, typename detail::unique_ptr_error<U>::type = 0);
+ template <class U> unique_ptr(U&, typename ipcdetail::unique_ptr_error<U>::type = 0);
    
    template <class U, class E> unique_ptr& operator=(unique_ptr<U, E>&);
- template <class U> typename detail::unique_ptr_error<U>::type operator=(U&);
+ template <class U> typename ipcdetail::unique_ptr_error<U>::type operator=(U&);
    /// @endcond
 };
 /*
@@ -338,12 +338,12 @@
 class unique_ptr<T[], D>
 {
     struct nat {int for_bool_;};
- typedef typename detail::add_reference<D>::type deleter_reference;
- typedef typename detail::add_reference<const D>::type deleter_const_reference;
+ typedef typename ipcdetail::add_reference<D>::type deleter_reference;
+ typedef typename ipcdetail::add_reference<const D>::type deleter_const_reference;
 public:
     typedef T element_type;
     typedef D deleter_type;
- typedef typename detail::pointer_type<T, D>::type pointer;
+ typedef typename ipcdetail::pointer_type<T, D>::type pointer;
 
     // constructors
     unique_ptr() : ptr_(pointer()) {}
@@ -351,7 +351,7 @@
     unique_ptr(pointer p, typename if_<
                           boost::is_reference<D>,
                           D,
- typename detail::add_reference<const D>::type>::type d)
+ typename ipcdetail::add_reference<const D>::type>::type d)
         : ptr_(p, d) {}
     unique_ptr(const unique_ptr& u)
         : ptr_(const_cast<unique_ptr&>(u).release(), u.get_deleter()) {}
@@ -374,7 +374,7 @@
     }
 
     // observers
- typename detail::add_reference<T>::type operator[](std::size_t i) const {return ptr_.first()[i];}
+ typename ipcdetail::add_reference<T>::type operator[](std::size_t i) const {return ptr_.first()[i];}
     pointer get() const {return ptr_.first();}
     deleter_reference get_deleter() {return ptr_.second();}
     deleter_const_reference get_deleter() const {return ptr_.second();}
@@ -406,22 +406,22 @@
         typename boost::enable_if<boost::is_convertible<U, pointer> >::type* = 0);
 
     unique_ptr(unique_ptr&);
- template <class U> unique_ptr(U&, typename detail::unique_ptr_error<U>::type = 0);
+ template <class U> unique_ptr(U&, typename ipcdetail::unique_ptr_error<U>::type = 0);
 
     unique_ptr& operator=(unique_ptr&);
- template <class U> typename detail::unique_ptr_error<U>::type operator=(U&);
+ template <class U> typename ipcdetail::unique_ptr_error<U>::type operator=(U&);
 };
 
 template <class T, class D, std::size_t N>
 class unique_ptr<T[N], D>
 {
     struct nat {int for_bool_;};
- typedef typename detail::add_reference<D>::type deleter_reference;
- typedef typename detail::add_reference<const D>::type deleter_const_reference;
+ typedef typename ipcdetail::add_reference<D>::type deleter_reference;
+ typedef typename ipcdetail::add_reference<const D>::type deleter_const_reference;
 public:
     typedef T element_type;
     typedef D deleter_type;
- typedef typename detail::pointer_type<T, D>::type pointer;
+ typedef typename ipcdetail::pointer_type<T, D>::type pointer;
     static const std::size_t size = N;
 
     // constructors
@@ -430,7 +430,7 @@
     unique_ptr(pointer p, typename if_<
                          boost::is_reference<D>,
                          D,
- typename detail::add_reference<const D>::type>::type d)
+ typename ipcdetail::add_reference<const D>::type>::type d)
         : ptr_(p, d) {}
     unique_ptr(const unique_ptr& u)
         : ptr_(const_cast<unique_ptr&>(u).release(), u.get_deleter()) {}
@@ -453,7 +453,7 @@
     }
 
     // observers
- typename detail::add_reference<T>::type operator[](std::size_t i) const {return ptr_.first()[i];}
+ typename ipcdetail::add_reference<T>::type operator[](std::size_t i) const {return ptr_.first()[i];}
     pointer get() const {return ptr_.first();}
     deleter_reference get_deleter() {return ptr_.second();}
     deleter_const_reference get_deleter() const {return ptr_.second();}
@@ -485,10 +485,10 @@
         typename boost::enable_if<boost::is_convertible<U, pointer> >::type* = 0);
 
     unique_ptr(unique_ptr&);
- template <class U> unique_ptr(U&, typename detail::unique_ptr_error<U>::type = 0);
+ template <class U> unique_ptr(U&, typename ipcdetail::unique_ptr_error<U>::type = 0);
 
     unique_ptr& operator=(unique_ptr&);
- template <class U> typename detail::unique_ptr_error<U>::type operator=(U&);
+ template <class U> typename ipcdetail::unique_ptr_error<U>::type operator=(U&);
 };
 */
 template <class T, class D> inline

Modified: trunk/boost/interprocess/smart_ptr/weak_ptr.hpp
==============================================================================
--- trunk/boost/interprocess/smart_ptr/weak_ptr.hpp (original)
+++ trunk/boost/interprocess/smart_ptr/weak_ptr.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -56,9 +56,9 @@
    typedef weak_ptr<T, A, D> this_type;
    typedef typename boost::pointer_to_other
       <typename A::pointer, T>::type pointer;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <T>::type reference;
- typedef typename detail::add_reference
+ typedef typename ipcdetail::add_reference
                      <T>::type const_reference;
    /// @endcond
 
@@ -192,7 +192,7 @@
    //!
    //!Throws: nothing.
    void swap(this_type & other) // never throws
- { detail::do_swap(m_pn, other.m_pn); }
+ { ipcdetail::do_swap(m_pn, other.m_pn); }
 
    /// @cond
    template<class T2, class A2, class D2>
@@ -200,7 +200,7 @@
    { return m_pn < rhs.m_pn; }
    
    template<class Y>
- void _internal_assign(const detail::shared_count<Y, A, D> & pn2)
+ void _internal_assign(const ipcdetail::shared_count<Y, A, D> & pn2)
    {
 
       m_pn = pn2;
@@ -211,7 +211,7 @@
    template<class T2, class A2, class D2> friend class shared_ptr;
    template<class T2, class A2, class D2> friend class weak_ptr;
 
- detail::weak_count<T, A, D> m_pn; // reference counter
+ ipcdetail::weak_count<T, A, D> m_pn; // reference counter
    /// @endcond
 }; // weak_ptr
 

Modified: trunk/boost/interprocess/sync/emulation/interprocess_condition.hpp
==============================================================================
--- trunk/boost/interprocess/sync/emulation/interprocess_condition.hpp (original)
+++ trunk/boost/interprocess/sync/emulation/interprocess_condition.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -47,19 +47,19 @@
    m_enter_mut.lock();
 
    //Return if there are no waiters
- if(!detail::atomic_read32(&m_num_waiters)) {
+ if(!ipcdetail::atomic_read32(&m_num_waiters)) {
       m_enter_mut.unlock();
       return;
    }
 
    //Notify that all threads should execute wait logic
- while(SLEEP != detail::atomic_cas32(const_cast<boost::uint32_t*>(&m_command), command, SLEEP)){
- detail::thread_yield();
+ while(SLEEP != ipcdetail::atomic_cas32(const_cast<boost::uint32_t*>(&m_command), command, SLEEP)){
+ ipcdetail::thread_yield();
    }
 /*
    //Wait until the threads are woken
- while(SLEEP != detail::atomic_cas32(const_cast<boost::uint32_t*>(&m_command), 0)){
- detail::thread_yield();
+ while(SLEEP != ipcdetail::atomic_cas32(const_cast<boost::uint32_t*>(&m_command), 0)){
+ ipcdetail::thread_yield();
    }
 */
    //The enter interprocess_mutex will rest locked until the last waiting thread unlocks it
@@ -107,7 +107,7 @@
       //We increment the waiting thread count protected so that it will be
       //always constant when another thread enters the notification logic.
       //The increment marks this thread as "waiting on interprocess_condition"
- detail::atomic_inc32(const_cast<boost::uint32_t*>(&m_num_waiters));
+ ipcdetail::atomic_inc32(const_cast<boost::uint32_t*>(&m_num_waiters));
 
       //We unlock the external interprocess_mutex atomically with the increment
       mut.unlock();
@@ -121,8 +121,8 @@
    while(1){
       //The thread sleeps/spins until a interprocess_condition commands a notification
       //Notification occurred, we will lock the checking interprocess_mutex so that
- while(detail::atomic_read32(&m_command) == SLEEP){
- detail::thread_yield();
+ while(ipcdetail::atomic_read32(&m_command) == SLEEP){
+ ipcdetail::thread_yield();
 
          //Check for timeout
          if(tout_enabled){
@@ -150,12 +150,12 @@
       //If a timeout occurred, the interprocess_mutex will not execute checking logic
       if(tout_enabled && timed_out){
          //Decrement wait count
- detail::atomic_dec32(const_cast<boost::uint32_t*>(&m_num_waiters));
+ ipcdetail::atomic_dec32(const_cast<boost::uint32_t*>(&m_num_waiters));
          unlock_enter_mut = true;
          break;
       }
       else{
- boost::uint32_t result = detail::atomic_cas32
+ boost::uint32_t result = ipcdetail::atomic_cas32
                         (const_cast<boost::uint32_t*>(&m_command), SLEEP, NOTIFY_ONE);
          if(result == SLEEP){
             //Other thread has been notified and since it was a NOTIFY one
@@ -168,17 +168,17 @@
             //so no other thread will exit.
             //Decrement wait count.
             unlock_enter_mut = true;
- detail::atomic_dec32(const_cast<boost::uint32_t*>(&m_num_waiters));
+ ipcdetail::atomic_dec32(const_cast<boost::uint32_t*>(&m_num_waiters));
             break;
          }
          else{
             //If it is a NOTIFY_ALL command, all threads should return
             //from do_timed_wait function. Decrement wait count.
- unlock_enter_mut = 1 == detail::atomic_dec32(const_cast<boost::uint32_t*>(&m_num_waiters));
+ unlock_enter_mut = 1 == ipcdetail::atomic_dec32(const_cast<boost::uint32_t*>(&m_num_waiters));
             //Check if this is the last thread of notify_all waiters
             //Only the last thread will release the interprocess_mutex
             if(unlock_enter_mut){
- detail::atomic_cas32(const_cast<boost::uint32_t*>(&m_command), SLEEP, NOTIFY_ALL);
+ ipcdetail::atomic_cas32(const_cast<boost::uint32_t*>(&m_command), SLEEP, NOTIFY_ALL);
             }
             break;
          }

Modified: trunk/boost/interprocess/sync/emulation/interprocess_semaphore.hpp
==============================================================================
--- trunk/boost/interprocess/sync/emulation/interprocess_semaphore.hpp (original)
+++ trunk/boost/interprocess/sync/emulation/interprocess_semaphore.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -19,25 +19,25 @@
 {}
 
 inline interprocess_semaphore::interprocess_semaphore(unsigned int initialCount)
-{ detail::atomic_write32(&this->m_count, boost::uint32_t(initialCount)); }
+{ ipcdetail::atomic_write32(&this->m_count, boost::uint32_t(initialCount)); }
 
 inline void interprocess_semaphore::post()
 {
- detail::atomic_inc32(&m_count);
+ ipcdetail::atomic_inc32(&m_count);
 }
 
 inline void interprocess_semaphore::wait()
 {
- while(!detail::atomic_add_unless32(&m_count, boost::uint32_t(-1), boost::uint32_t(0))){
- while(detail::atomic_read32(&m_count) == 0){
- detail::thread_yield();
+ while(!ipcdetail::atomic_add_unless32(&m_count, boost::uint32_t(-1), boost::uint32_t(0))){
+ while(ipcdetail::atomic_read32(&m_count) == 0){
+ ipcdetail::thread_yield();
       }
    }
 }
 
 inline bool interprocess_semaphore::try_wait()
 {
- return detail::atomic_add_unless32(&m_count, boost::uint32_t(-1), boost::uint32_t(0));
+ return ipcdetail::atomic_add_unless32(&m_count, boost::uint32_t(-1), boost::uint32_t(0));
 }
 
 inline bool interprocess_semaphore::timed_wait(const boost::posix_time::ptime &abs_time)
@@ -61,14 +61,14 @@
          return this->try_wait();
       }
       // relinquish current time slice
- detail::thread_yield();
+ ipcdetail::thread_yield();
    }while (true);
    return true;
 }
 /*
 inline int interprocess_semaphore::get_count() const
 {
- return (int)detail::atomic_read32(&m_count);
+ return (int)ipcdetail::atomic_read32(&m_count);
 }*/
 
 } //namespace interprocess {

Modified: trunk/boost/interprocess/sync/emulation/mutex.hpp
==============================================================================
--- trunk/boost/interprocess/sync/emulation/mutex.hpp (original)
+++ trunk/boost/interprocess/sync/emulation/mutex.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -25,7 +25,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 class emulation_mutex
 {
@@ -61,19 +61,19 @@
 inline void emulation_mutex::lock(void)
 {
    do{
- boost::uint32_t prev_s = detail::atomic_cas32(const_cast<boost::uint32_t*>(&m_s), 1, 0);
+ boost::uint32_t prev_s = ipcdetail::atomic_cas32(const_cast<boost::uint32_t*>(&m_s), 1, 0);
 
       if (m_s == 1 && prev_s == 0){
             break;
       }
       // relinquish current timeslice
- detail::thread_yield();
+ ipcdetail::thread_yield();
    }while (true);
 }
 
 inline bool emulation_mutex::try_lock(void)
 {
- boost::uint32_t prev_s = detail::atomic_cas32(const_cast<boost::uint32_t*>(&m_s), 1, 0);
+ boost::uint32_t prev_s = ipcdetail::atomic_cas32(const_cast<boost::uint32_t*>(&m_s), 1, 0);
    return m_s == 1 && prev_s == 0;
 }
 
@@ -98,16 +98,16 @@
          return false;
       }
       // relinquish current time slice
- detail::thread_yield();
+ ipcdetail::thread_yield();
    }while (true);
 
    return true;
 }
 
 inline void emulation_mutex::unlock(void)
-{ detail::atomic_cas32(const_cast<boost::uint32_t*>(&m_s), 0, 1); }
+{ ipcdetail::atomic_cas32(const_cast<boost::uint32_t*>(&m_s), 0, 1); }
 
-} //namespace detail {
+} //namespace ipcdetail {
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/sync/emulation/named_creation_functor.hpp
==============================================================================
--- trunk/boost/interprocess/sync/emulation/named_creation_functor.hpp (original)
+++ trunk/boost/interprocess/sync/emulation/named_creation_functor.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -17,7 +17,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 struct named_creation_functor_no_arg{};
 
@@ -26,7 +26,7 @@
 {
    typedef named_creation_functor_no_arg no_arg_t;
    public:
- named_creation_functor(detail::create_enum_t type, Arg arg = Arg())
+ named_creation_functor(ipcdetail::create_enum_t type, Arg arg = Arg())
       : m_creation_type(type), m_arg(arg){}
 
    template<class ArgType>
@@ -40,11 +40,11 @@
    bool operator()(void *address, std::size_t, bool created) const
    {
       switch(m_creation_type){
- case detail::DoOpen:
+ case ipcdetail::DoOpen:
             return true;
          break;
- case detail::DoCreate:
- case detail::DoOpenOrCreate:
+ case ipcdetail::DoCreate:
+ case ipcdetail::DoOpenOrCreate:
             if(created){
                construct<Arg>(address);
             }
@@ -57,11 +57,11 @@
       }
    }
    private:
- detail::create_enum_t m_creation_type;
+ ipcdetail::create_enum_t m_creation_type;
    Arg m_arg;
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/sync/emulation/recursive_mutex.hpp
==============================================================================
--- trunk/boost/interprocess/sync/emulation/recursive_mutex.hpp (original)
+++ trunk/boost/interprocess/sync/emulation/recursive_mutex.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -38,7 +38,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail {
+namespace ipcdetail {
 
 class emulation_recursive_mutex
 {
@@ -57,22 +57,22 @@
    private:
    emulation_mutex m_mutex;
    unsigned int m_nLockCount;
- volatile detail::OS_systemwide_thread_id_t m_nOwner;
+ volatile ipcdetail::OS_systemwide_thread_id_t m_nOwner;
    volatile boost::uint32_t m_s;
 };
 
 inline emulation_recursive_mutex::emulation_recursive_mutex()
- : m_nLockCount(0), m_nOwner(detail::get_invalid_systemwide_thread_id()){}
+ : m_nLockCount(0), m_nOwner(ipcdetail::get_invalid_systemwide_thread_id()){}
 
 inline emulation_recursive_mutex::~emulation_recursive_mutex(){}
 
 inline void emulation_recursive_mutex::lock()
 {
- typedef detail::OS_systemwide_thread_id_t handle_t;
- const handle_t thr_id(detail::get_current_systemwide_thread_id());
+ typedef ipcdetail::OS_systemwide_thread_id_t handle_t;
+ const handle_t thr_id(ipcdetail::get_current_systemwide_thread_id());
    handle_t old_id;
- detail::systemwide_thread_id_copy(m_nOwner, old_id);
- if(detail::equal_systemwide_thread_id(thr_id , old_id)){
+ ipcdetail::systemwide_thread_id_copy(m_nOwner, old_id);
+ if(ipcdetail::equal_systemwide_thread_id(thr_id , old_id)){
       if((unsigned int)(m_nLockCount+1) == 0){
          //Overflow, throw an exception
          throw interprocess_exception("boost::interprocess::emulation_recursive_mutex recursive lock overflow");
@@ -81,18 +81,18 @@
    }
    else{
       m_mutex.lock();
- detail::systemwide_thread_id_copy(thr_id, m_nOwner);
+ ipcdetail::systemwide_thread_id_copy(thr_id, m_nOwner);
       m_nLockCount = 1;
    }
 }
 
 inline bool emulation_recursive_mutex::try_lock()
 {
- typedef detail::OS_systemwide_thread_id_t handle_t;
- handle_t thr_id(detail::get_current_systemwide_thread_id());
+ typedef ipcdetail::OS_systemwide_thread_id_t handle_t;
+ handle_t thr_id(ipcdetail::get_current_systemwide_thread_id());
    handle_t old_id;
- detail::systemwide_thread_id_copy(m_nOwner, old_id);
- if(detail::equal_systemwide_thread_id(thr_id , old_id)) { // we own it
+ ipcdetail::systemwide_thread_id_copy(m_nOwner, old_id);
+ if(ipcdetail::equal_systemwide_thread_id(thr_id , old_id)) { // we own it
       if((unsigned int)(m_nLockCount+1) == 0){
          //Overflow, throw an exception
          throw interprocess_exception("boost::interprocess::emulation_recursive_mutex recursive lock overflow");
@@ -101,7 +101,7 @@
       return true;
    }
    if(m_mutex.try_lock()){
- detail::systemwide_thread_id_copy(thr_id, m_nOwner);
+ ipcdetail::systemwide_thread_id_copy(thr_id, m_nOwner);
       m_nLockCount = 1;
       return true;
    }
@@ -110,15 +110,15 @@
 
 inline bool emulation_recursive_mutex::timed_lock(const boost::posix_time::ptime &abs_time)
 {
- typedef detail::OS_systemwide_thread_id_t handle_t;
+ typedef ipcdetail::OS_systemwide_thread_id_t handle_t;
    if(abs_time == boost::posix_time::pos_infin){
       this->lock();
       return true;
    }
- const handle_t thr_id(detail::get_current_systemwide_thread_id());
+ const handle_t thr_id(ipcdetail::get_current_systemwide_thread_id());
    handle_t old_id;
- detail::systemwide_thread_id_copy(m_nOwner, old_id);
- if(detail::equal_systemwide_thread_id(thr_id , old_id)) { // we own it
+ ipcdetail::systemwide_thread_id_copy(m_nOwner, old_id);
+ if(ipcdetail::equal_systemwide_thread_id(thr_id , old_id)) { // we own it
       if((unsigned int)(m_nLockCount+1) == 0){
          //Overflow, throw an exception
          throw interprocess_exception("boost::interprocess::emulation_recursive_mutex recursive lock overflow");
@@ -127,7 +127,7 @@
       return true;
    }
    if(m_mutex.timed_lock(abs_time)){
- detail::systemwide_thread_id_copy(thr_id, m_nOwner);
+ ipcdetail::systemwide_thread_id_copy(thr_id, m_nOwner);
       m_nLockCount = 1;
       return true;
    }
@@ -136,31 +136,31 @@
 
 inline void emulation_recursive_mutex::unlock()
 {
- typedef detail::OS_systemwide_thread_id_t handle_t;
+ typedef ipcdetail::OS_systemwide_thread_id_t handle_t;
    handle_t old_id;
- detail::systemwide_thread_id_copy(m_nOwner, old_id);
- const handle_t thr_id(detail::get_current_systemwide_thread_id());
+ ipcdetail::systemwide_thread_id_copy(m_nOwner, old_id);
+ const handle_t thr_id(ipcdetail::get_current_systemwide_thread_id());
    (void)old_id;
    (void)thr_id;
- BOOST_ASSERT(detail::equal_systemwide_thread_id(thr_id, old_id));
+ BOOST_ASSERT(ipcdetail::equal_systemwide_thread_id(thr_id, old_id));
    --m_nLockCount;
    if(!m_nLockCount){
- const handle_t new_id(detail::get_invalid_systemwide_thread_id());
- detail::systemwide_thread_id_copy(new_id, m_nOwner);
+ const handle_t new_id(ipcdetail::get_invalid_systemwide_thread_id());
+ ipcdetail::systemwide_thread_id_copy(new_id, m_nOwner);
       m_mutex.unlock();
    }
 }
 
 inline void emulation_recursive_mutex::take_ownership()
 {
- typedef detail::OS_systemwide_thread_id_t handle_t;
+ typedef ipcdetail::OS_systemwide_thread_id_t handle_t;
    this->m_nLockCount = 1;
- const handle_t thr_id(detail::get_current_systemwide_thread_id());
- detail::systemwide_thread_id_copy
+ const handle_t thr_id(ipcdetail::get_current_systemwide_thread_id());
+ ipcdetail::systemwide_thread_id_copy
       (thr_id, m_nOwner);
 }
 
-} //namespace detail {
+} //namespace ipcdetail {
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/sync/file_lock.hpp
==============================================================================
--- trunk/boost/interprocess/sync/file_lock.hpp (original)
+++ trunk/boost/interprocess/sync/file_lock.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -46,7 +46,7 @@
    //!Constructs an empty file mapping.
    //!Does not throw
    file_lock()
- : m_file_hnd(file_handle_t(detail::invalid_file()))
+ : m_file_hnd(file_handle_t(ipcdetail::invalid_file()))
    {}
 
    //!Opens a file lock. Throws interprocess_exception if the file does not
@@ -57,7 +57,7 @@
    //!After the call, "moved" does not represent any file mapping object.
    //!Does not throw
    file_lock(BOOST_RV_REF(file_lock) moved)
- : m_file_hnd(file_handle_t(detail::invalid_file()))
+ : m_file_hnd(file_handle_t(ipcdetail::invalid_file()))
    { this->swap(moved); }
 
    //!Moves the ownership of "moved"'s file mapping to *this.
@@ -151,7 +151,7 @@
       if(now >= abs_time) return false;
 
       do{
- if(!detail::try_acquire_file_lock(hnd, acquired))
+ if(!ipcdetail::try_acquire_file_lock(hnd, acquired))
             return false;
 
          if(acquired)
@@ -164,7 +164,7 @@
                return true;
             }
             // relinquish current time slice
- detail::thread_yield();
+ ipcdetail::thread_yield();
          }
       }while (true);
    }
@@ -179,7 +179,7 @@
       if(now >= abs_time) return false;
 
       do{
- if(!detail::try_acquire_file_lock_sharable(hnd, acquired))
+ if(!ipcdetail::try_acquire_file_lock_sharable(hnd, acquired))
             return false;
 
          if(acquired)
@@ -192,7 +192,7 @@
                return true;
             }
             // relinquish current time slice
- detail::thread_yield();
+ ipcdetail::thread_yield();
          }
       }while (true);
    }
@@ -201,9 +201,9 @@
 
 inline file_lock::file_lock(const char *name)
 {
- m_file_hnd = detail::open_existing_file(name, read_write);
+ m_file_hnd = ipcdetail::open_existing_file(name, read_write);
 
- if(m_file_hnd == detail::invalid_file()){
+ if(m_file_hnd == ipcdetail::invalid_file()){
       error_info err(system_error_code());
       throw interprocess_exception(err);
    }
@@ -211,15 +211,15 @@
 
 inline file_lock::~file_lock()
 {
- if(m_file_hnd != detail::invalid_file()){
- detail::close_file(m_file_hnd);
- m_file_hnd = detail::invalid_file();
+ if(m_file_hnd != ipcdetail::invalid_file()){
+ ipcdetail::close_file(m_file_hnd);
+ m_file_hnd = ipcdetail::invalid_file();
    }
 }
 
 inline void file_lock::lock()
 {
- if(!detail::acquire_file_lock(m_file_hnd)){
+ if(!ipcdetail::acquire_file_lock(m_file_hnd)){
       error_info err(system_error_code());
       throw interprocess_exception(err);
    }
@@ -228,7 +228,7 @@
 inline bool file_lock::try_lock()
 {
    bool result;
- if(!detail::try_acquire_file_lock(m_file_hnd, result)){
+ if(!ipcdetail::try_acquire_file_lock(m_file_hnd, result)){
       error_info err(system_error_code());
       throw interprocess_exception(err);
    }
@@ -251,7 +251,7 @@
 
 inline void file_lock::unlock()
 {
- if(!detail::release_file_lock(m_file_hnd)){
+ if(!ipcdetail::release_file_lock(m_file_hnd)){
       error_info err(system_error_code());
       throw interprocess_exception(err);
    }
@@ -259,7 +259,7 @@
 
 inline void file_lock::lock_sharable()
 {
- if(!detail::acquire_file_lock_sharable(m_file_hnd)){
+ if(!ipcdetail::acquire_file_lock_sharable(m_file_hnd)){
       error_info err(system_error_code());
       throw interprocess_exception(err);
    }
@@ -268,7 +268,7 @@
 inline bool file_lock::try_lock_sharable()
 {
    bool result;
- if(!detail::try_acquire_file_lock_sharable(m_file_hnd, result)){
+ if(!ipcdetail::try_acquire_file_lock_sharable(m_file_hnd, result)){
       error_info err(system_error_code());
       throw interprocess_exception(err);
    }
@@ -291,7 +291,7 @@
 
 inline void file_lock::unlock_sharable()
 {
- if(!detail::release_file_lock_sharable(m_file_hnd)){
+ if(!ipcdetail::release_file_lock_sharable(m_file_hnd)){
       error_info err(system_error_code());
       throw interprocess_exception(err);
    }

Modified: trunk/boost/interprocess/sync/interprocess_mutex.hpp
==============================================================================
--- trunk/boost/interprocess/sync/interprocess_mutex.hpp (original)
+++ trunk/boost/interprocess/sync/interprocess_mutex.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -21,6 +21,7 @@
 # pragma once
 #endif
 
+#include <boost/interprocess/exceptions.hpp>
 #include <boost/interprocess/detail/config_begin.hpp>
 #include <boost/interprocess/detail/workaround.hpp>
 #include <boost/interprocess/detail/posix_time_types_wrk.hpp>
@@ -37,7 +38,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail{
+namespace ipcdetail{
 namespace robust_emulation_helpers {
 
 template<class T>
@@ -108,9 +109,9 @@
    private:
 
    #if defined(BOOST_INTERPROCESS_USE_GENERIC_EMULATION)
- friend class detail::robust_emulation_helpers::mutex_traits<interprocess_mutex>;
+ friend class ipcdetail::robust_emulation_helpers::mutex_traits<interprocess_mutex>;
    void take_ownership(){ mutex.take_ownership(); }
- detail::emulation_mutex mutex;
+ ipcdetail::emulation_mutex mutex;
    #elif defined(BOOST_INTERPROCESS_USE_POSIX)
       pthread_mutex_t m_mut;
    #endif //#if (defined BOOST_INTERPROCESS_WINDOWS)
@@ -128,7 +129,20 @@
 
 inline interprocess_mutex::interprocess_mutex(){}
 inline interprocess_mutex::~interprocess_mutex(){}
-inline void interprocess_mutex::lock(){ mutex.lock(); }
+inline void interprocess_mutex::lock()
+{
+#ifdef BOOST_INTERPROCESS_ENABLE_TIMEOUT_WHEN_LOCKING
+ boost::posix_time::ptime wait_time
+ = boost::posix_time::microsec_clock::universal_time()
+ + boost::posix_time::milliseconds(BOOST_INTERPROCESS_TIMEOUT_WHEN_LOCKING_DURATION_MS);
+ if (!mutex.timed_lock(wait_time))
+ {
+ throw interprocess_exception(timeout_when_locking_error, "Interprocess mutex timeout when locking. Possible deadlock: owner died without unlocking?");
+ }
+#else
+ mutex.lock();
+#endif
+}
 inline bool interprocess_mutex::try_lock(){ return mutex.try_lock(); }
 inline bool interprocess_mutex::timed_lock(const boost::posix_time::ptime &abs_time){ return mutex.timed_lock(abs_time); }
 inline void interprocess_mutex::unlock(){ mutex.unlock(); }

Modified: trunk/boost/interprocess/sync/interprocess_recursive_mutex.hpp
==============================================================================
--- trunk/boost/interprocess/sync/interprocess_recursive_mutex.hpp (original)
+++ trunk/boost/interprocess/sync/interprocess_recursive_mutex.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -52,7 +52,7 @@
 #if defined (BOOST_INTERPROCESS_USE_GENERIC_EMULATION)
 namespace boost {
 namespace interprocess {
-namespace detail{
+namespace ipcdetail{
 namespace robust_emulation_helpers {
 
 template<class T>
@@ -119,8 +119,8 @@
 
    #if defined (BOOST_INTERPROCESS_USE_GENERIC_EMULATION)
    void take_ownership(){ mutex.take_ownership(); }
- friend class detail::robust_emulation_helpers::mutex_traits<interprocess_recursive_mutex>;
- detail::emulation_recursive_mutex mutex;
+ friend class ipcdetail::robust_emulation_helpers::mutex_traits<interprocess_recursive_mutex>;
+ ipcdetail::emulation_recursive_mutex mutex;
    #else //#if defined (BOOST_INTERPROCESS_USE_GENERIC_EMULATION)
    pthread_mutex_t m_mut;
    #endif //#if (defined BOOST_INTERPROCESS_WINDOWS)
@@ -138,7 +138,20 @@
 
 inline interprocess_recursive_mutex::interprocess_recursive_mutex(){}
 inline interprocess_recursive_mutex::~interprocess_recursive_mutex(){}
-inline void interprocess_recursive_mutex::lock(){ mutex.lock(); }
+inline void interprocess_recursive_mutex::lock()
+{
+#ifdef BOOST_INTERPROCESS_ENABLE_TIMEOUT_WHEN_LOCKING
+ boost::posix_time::ptime wait_time
+ = boost::posix_time::microsec_clock::universal_time()
+ + boost::posix_time::milliseconds(BOOST_INTERPROCESS_TIMEOUT_WHEN_LOCKING_DURATION_MS);
+ if (!mutex.timed_lock(wait_time))
+ {
+ throw interprocess_exception(timeout_when_locking_error, "Interprocess mutex timeout when locking. Possible deadlock: owner died without unlocking?");
+ }
+#else
+ mutex.lock();
+#endif
+}
 inline bool interprocess_recursive_mutex::try_lock(){ return mutex.try_lock(); }
 inline bool interprocess_recursive_mutex::timed_lock(const boost::posix_time::ptime &abs_time){ return mutex.timed_lock(abs_time); }
 inline void interprocess_recursive_mutex::unlock(){ mutex.unlock(); }

Modified: trunk/boost/interprocess/sync/interprocess_semaphore.hpp
==============================================================================
--- trunk/boost/interprocess/sync/interprocess_semaphore.hpp (original)
+++ trunk/boost/interprocess/sync/interprocess_semaphore.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -95,7 +95,7 @@
    #if defined(BOOST_INTERPROCESS_USE_GENERIC_EMULATION)
    volatile boost::uint32_t m_count;
    #else
- detail::semaphore_wrapper m_sem;
+ ipcdetail::semaphore_wrapper m_sem;
    #endif //#if defined(BOOST_INTERPROCESS_USE_GENERIC_EMULATION)
    /// @endcond
 };

Modified: trunk/boost/interprocess/sync/named_condition.hpp
==============================================================================
--- trunk/boost/interprocess/sync/named_condition.hpp (original)
+++ trunk/boost/interprocess/sync/named_condition.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -41,7 +41,7 @@
 namespace interprocess {
 
 /// @cond
-namespace detail{ class interprocess_tester; }
+namespace ipcdetail{ class interprocess_tester; }
 /// @endcond
 
 //! A global condition variable that can be created by name.
@@ -154,7 +154,7 @@
    void do_wait(Lock& lock)
    {
       //named_condition only works with named_mutex
- BOOST_STATIC_ASSERT((detail::is_convertible<typename Lock::mutex_type&, named_mutex&>::value == true));
+ BOOST_STATIC_ASSERT((ipcdetail::is_convertible<typename Lock::mutex_type&, named_mutex&>::value == true));
       
       //lock internal before unlocking external to avoid race with a notifier
       scoped_lock<interprocess_mutex> internal_lock(*this->mutex());
@@ -171,7 +171,7 @@
    bool do_timed_wait(Lock& lock, const boost::posix_time::ptime &abs_time)
    {
       //named_condition only works with named_mutex
- BOOST_STATIC_ASSERT((detail::is_convertible<typename Lock::mutex_type&, named_mutex&>::value == true));
+ BOOST_STATIC_ASSERT((ipcdetail::is_convertible<typename Lock::mutex_type&, named_mutex&>::value == true));
       //lock internal before unlocking external to avoid race with a notifier
       scoped_lock<interprocess_mutex> internal_lock(*this->mutex(), abs_time);
       if(!internal_lock) return false;
@@ -185,13 +185,13 @@
    }
    #endif
 
- friend class detail::interprocess_tester;
+ friend class ipcdetail::interprocess_tester;
    void dont_close_on_destruction();
 
- detail::managed_open_or_create_impl<shared_memory_object> m_shmem;
+ ipcdetail::managed_open_or_create_impl<shared_memory_object> m_shmem;
 
- template <class T, class Arg> friend class boost::interprocess::detail::named_creation_functor;
- typedef detail::named_creation_functor<condition_holder> construct_func_t;
+ template <class T, class Arg> friend class boost::interprocess::ipcdetail::named_creation_functor;
+ typedef ipcdetail::named_creation_functor<condition_holder> construct_func_t;
    /// @endcond
 };
 
@@ -204,11 +204,11 @@
    : m_shmem (create_only
                ,name
                ,sizeof(condition_holder) +
- detail::managed_open_or_create_impl<shared_memory_object>::
+ ipcdetail::managed_open_or_create_impl<shared_memory_object>::
                      ManagedOpenOrCreateUserOffset
                ,read_write
                ,0
- ,construct_func_t(detail::DoCreate)
+ ,construct_func_t(ipcdetail::DoCreate)
                ,perm)
 {}
 
@@ -216,11 +216,11 @@
    : m_shmem (open_or_create
                ,name
                ,sizeof(condition_holder) +
- detail::managed_open_or_create_impl<shared_memory_object>::
+ ipcdetail::managed_open_or_create_impl<shared_memory_object>::
                      ManagedOpenOrCreateUserOffset
                ,read_write
                ,0
- ,construct_func_t(detail::DoOpenOrCreate)
+ ,construct_func_t(ipcdetail::DoOpenOrCreate)
                ,perm)
 {}
 
@@ -229,11 +229,11 @@
                ,name
                ,read_write
                ,0
- ,construct_func_t(detail::DoOpen))
+ ,construct_func_t(ipcdetail::DoOpen))
 {}
 
 inline void named_condition::dont_close_on_destruction()
-{ detail::interprocess_tester::dont_close_on_destruction(m_shmem); }
+{ ipcdetail::interprocess_tester::dont_close_on_destruction(m_shmem); }
 
 #if defined(BOOST_INTERPROCESS_NAMED_MUTEX_USES_POSIX_SEMAPHORES)
 

Modified: trunk/boost/interprocess/sync/named_mutex.hpp
==============================================================================
--- trunk/boost/interprocess/sync/named_mutex.hpp (original)
+++ trunk/boost/interprocess/sync/named_mutex.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -104,17 +104,17 @@
 
    /// @cond
    private:
- friend class detail::interprocess_tester;
+ friend class ipcdetail::interprocess_tester;
    void dont_close_on_destruction();
 
    #if defined(BOOST_INTERPROCESS_NAMED_MUTEX_USES_POSIX_SEMAPHORES)
- detail::named_semaphore_wrapper m_sem;
+ ipcdetail::named_semaphore_wrapper m_sem;
    #else
    interprocess_mutex *mutex() const
    { return static_cast<interprocess_mutex*>(m_shmem.get_user_address()); }
 
- detail::managed_open_or_create_impl<shared_memory_object> m_shmem;
- typedef detail::named_creation_functor<interprocess_mutex> construct_func_t;
+ ipcdetail::managed_open_or_create_impl<shared_memory_object> m_shmem;
+ typedef ipcdetail::named_creation_functor<interprocess_mutex> construct_func_t;
    #endif
    /// @endcond
 };
@@ -124,19 +124,19 @@
 #if defined(BOOST_INTERPROCESS_NAMED_MUTEX_USES_POSIX_SEMAPHORES)
 
 inline named_mutex::named_mutex(create_only_t, const char *name, const permissions &perm)
- : m_sem(detail::DoCreate, name, 1, perm)
+ : m_sem(ipcdetail::DoCreate, name, 1, perm)
 {}
 
 inline named_mutex::named_mutex(open_or_create_t, const char *name, const permissions &perm)
- : m_sem(detail::DoOpenOrCreate, name, 1, perm)
+ : m_sem(ipcdetail::DoOpenOrCreate, name, 1, perm)
 {}
 
 inline named_mutex::named_mutex(open_only_t, const char *name)
- : m_sem(detail::DoOpen, name, 1, permissions())
+ : m_sem(ipcdetail::DoOpen, name, 1, permissions())
 {}
 
 inline void named_mutex::dont_close_on_destruction()
-{ detail::interprocess_tester::dont_close_on_destruction(m_sem); }
+{ ipcdetail::interprocess_tester::dont_close_on_destruction(m_sem); }
 
 inline named_mutex::~named_mutex()
 {}
@@ -160,12 +160,12 @@
 }
 
 inline bool named_mutex::remove(const char *name)
-{ return detail::named_semaphore_wrapper::remove(name); }
+{ return ipcdetail::named_semaphore_wrapper::remove(name); }
 
 #else
 
 inline void named_mutex::dont_close_on_destruction()
-{ detail::interprocess_tester::dont_close_on_destruction(m_shmem); }
+{ ipcdetail::interprocess_tester::dont_close_on_destruction(m_shmem); }
 
 inline named_mutex::~named_mutex()
 {}
@@ -174,11 +174,11 @@
    : m_shmem (create_only
                ,name
                ,sizeof(interprocess_mutex) +
- detail::managed_open_or_create_impl<shared_memory_object>::
+ ipcdetail::managed_open_or_create_impl<shared_memory_object>::
                      ManagedOpenOrCreateUserOffset
                ,read_write
                ,0
- ,construct_func_t(detail::DoCreate)
+ ,construct_func_t(ipcdetail::DoCreate)
                ,perm)
 {}
 
@@ -186,11 +186,11 @@
    : m_shmem (open_or_create
                ,name
                ,sizeof(interprocess_mutex) +
- detail::managed_open_or_create_impl<shared_memory_object>::
+ ipcdetail::managed_open_or_create_impl<shared_memory_object>::
                      ManagedOpenOrCreateUserOffset
                ,read_write
                ,0
- ,construct_func_t(detail::DoOpenOrCreate)
+ ,construct_func_t(ipcdetail::DoOpenOrCreate)
                ,perm)
 {}
 
@@ -199,7 +199,7 @@
                ,name
                ,read_write
                ,0
- ,construct_func_t(detail::DoOpen))
+ ,construct_func_t(ipcdetail::DoOpen))
 {}
 
 inline void named_mutex::lock()

Modified: trunk/boost/interprocess/sync/named_recursive_mutex.hpp
==============================================================================
--- trunk/boost/interprocess/sync/named_recursive_mutex.hpp (original)
+++ trunk/boost/interprocess/sync/named_recursive_mutex.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -33,7 +33,7 @@
 namespace interprocess {
 
 /// @cond
-namespace detail{ class interprocess_tester; }
+namespace ipcdetail{ class interprocess_tester; }
 /// @endcond
 
 //!A recursive mutex with a global name, so it can be found from different
@@ -98,14 +98,14 @@
 
    /// @cond
    private:
- friend class detail::interprocess_tester;
+ friend class ipcdetail::interprocess_tester;
    void dont_close_on_destruction();
 
    interprocess_recursive_mutex *mutex() const
    { return static_cast<interprocess_recursive_mutex*>(m_shmem.get_user_address()); }
 
- detail::managed_open_or_create_impl<shared_memory_object> m_shmem;
- typedef detail::named_creation_functor<interprocess_recursive_mutex> construct_func_t;
+ ipcdetail::managed_open_or_create_impl<shared_memory_object> m_shmem;
+ typedef ipcdetail::named_creation_functor<interprocess_recursive_mutex> construct_func_t;
    /// @endcond
 };
 
@@ -115,17 +115,17 @@
 {}
 
 inline void named_recursive_mutex::dont_close_on_destruction()
-{ detail::interprocess_tester::dont_close_on_destruction(m_shmem); }
+{ ipcdetail::interprocess_tester::dont_close_on_destruction(m_shmem); }
 
 inline named_recursive_mutex::named_recursive_mutex(create_only_t, const char *name, const permissions &perm)
    : m_shmem (create_only
                ,name
                ,sizeof(interprocess_recursive_mutex) +
- detail::managed_open_or_create_impl<shared_memory_object>::
+ ipcdetail::managed_open_or_create_impl<shared_memory_object>::
                      ManagedOpenOrCreateUserOffset
                ,read_write
                ,0
- ,construct_func_t(detail::DoCreate)
+ ,construct_func_t(ipcdetail::DoCreate)
                ,perm)
 {}
 
@@ -133,11 +133,11 @@
    : m_shmem (open_or_create
                ,name
                ,sizeof(interprocess_recursive_mutex) +
- detail::managed_open_or_create_impl<shared_memory_object>::
+ ipcdetail::managed_open_or_create_impl<shared_memory_object>::
                      ManagedOpenOrCreateUserOffset
                ,read_write
                ,0
- ,construct_func_t(detail::DoOpenOrCreate)
+ ,construct_func_t(ipcdetail::DoOpenOrCreate)
                ,perm)
 {}
 
@@ -146,7 +146,7 @@
                ,name
                ,read_write
                ,0
- ,construct_func_t(detail::DoOpen))
+ ,construct_func_t(ipcdetail::DoOpen))
 {}
 
 inline void named_recursive_mutex::lock()

Modified: trunk/boost/interprocess/sync/named_semaphore.hpp
==============================================================================
--- trunk/boost/interprocess/sync/named_semaphore.hpp (original)
+++ trunk/boost/interprocess/sync/named_semaphore.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -105,17 +105,17 @@
 
    /// @cond
    private:
- friend class detail::interprocess_tester;
+ friend class ipcdetail::interprocess_tester;
    void dont_close_on_destruction();
 
    #if defined(BOOST_INTERPROCESS_NAMED_SEMAPHORE_USES_POSIX_SEMAPHORES)
- detail::named_semaphore_wrapper m_sem;
+ ipcdetail::named_semaphore_wrapper m_sem;
    #else
    interprocess_semaphore *semaphore() const
    { return static_cast<interprocess_semaphore*>(m_shmem.get_user_address()); }
 
- detail::managed_open_or_create_impl<shared_memory_object> m_shmem;
- typedef detail::named_creation_functor<interprocess_semaphore, int> construct_func_t;
+ ipcdetail::managed_open_or_create_impl<shared_memory_object> m_shmem;
+ typedef ipcdetail::named_creation_functor<interprocess_semaphore, int> construct_func_t;
    #endif
    /// @endcond
 };
@@ -126,23 +126,23 @@
 
 inline named_semaphore::named_semaphore
    (create_only_t, const char *name, unsigned int initialCount, const permissions &perm)
- : m_sem(detail::DoCreate, name, initialCount, perm)
+ : m_sem(ipcdetail::DoCreate, name, initialCount, perm)
 {}
 
 inline named_semaphore::named_semaphore
    (open_or_create_t, const char *name, unsigned int initialCount, const permissions &perm)
- : m_sem(detail::DoOpenOrCreate, name, initialCount, perm)
+ : m_sem(ipcdetail::DoOpenOrCreate, name, initialCount, perm)
 {}
 
 inline named_semaphore::named_semaphore(open_only_t, const char *name)
- : m_sem(detail::DoOpen, name, 1, permissions())
+ : m_sem(ipcdetail::DoOpen, name, 1, permissions())
 {}
 
 inline named_semaphore::~named_semaphore()
 {}
 
 inline void named_semaphore::dont_close_on_destruction()
-{ detail::interprocess_tester::dont_close_on_destruction(m_sem); }
+{ ipcdetail::interprocess_tester::dont_close_on_destruction(m_sem); }
 
 inline void named_semaphore::wait()
 { m_sem.wait(); }
@@ -163,7 +163,7 @@
 }
 
 inline bool named_semaphore::remove(const char *name)
-{ return detail::named_semaphore_wrapper::remove(name); }
+{ return ipcdetail::named_semaphore_wrapper::remove(name); }
 
 #else
 
@@ -171,18 +171,18 @@
 {}
 
 inline void named_semaphore::dont_close_on_destruction()
-{ detail::interprocess_tester::dont_close_on_destruction(m_shmem); }
+{ ipcdetail::interprocess_tester::dont_close_on_destruction(m_shmem); }
 
 inline named_semaphore::named_semaphore
    (create_only_t, const char *name, unsigned int initialCount, const permissions &perm)
    : m_shmem (create_only
                ,name
                ,sizeof(interprocess_semaphore) +
- detail::managed_open_or_create_impl<shared_memory_object>::
+ ipcdetail::managed_open_or_create_impl<shared_memory_object>::
                      ManagedOpenOrCreateUserOffset
                ,read_write
                ,0
- ,construct_func_t(detail::DoCreate, initialCount)
+ ,construct_func_t(ipcdetail::DoCreate, initialCount)
                ,perm)
 {}
 
@@ -191,11 +191,11 @@
    : m_shmem (open_or_create
                ,name
                ,sizeof(interprocess_semaphore) +
- detail::managed_open_or_create_impl<shared_memory_object>::
+ ipcdetail::managed_open_or_create_impl<shared_memory_object>::
                      ManagedOpenOrCreateUserOffset
                ,read_write
                ,0
- ,construct_func_t(detail::DoOpenOrCreate, initialCount)
+ ,construct_func_t(ipcdetail::DoOpenOrCreate, initialCount)
                ,perm)
 {}
 
@@ -205,7 +205,7 @@
                ,name
                ,read_write
                ,0
- ,construct_func_t(detail::DoOpen, 0))
+ ,construct_func_t(ipcdetail::DoOpen, 0))
 {}
 
 inline void named_semaphore::post()

Modified: trunk/boost/interprocess/sync/named_upgradable_mutex.hpp
==============================================================================
--- trunk/boost/interprocess/sync/named_upgradable_mutex.hpp (original)
+++ trunk/boost/interprocess/sync/named_upgradable_mutex.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -33,7 +33,7 @@
 namespace interprocess {
 
 /// @cond
-namespace detail{ class interprocess_tester; }
+namespace ipcdetail{ class interprocess_tester; }
 /// @endcond
 
 class named_condition;
@@ -223,14 +223,14 @@
 
    /// @cond
    private:
- friend class detail::interprocess_tester;
+ friend class ipcdetail::interprocess_tester;
    void dont_close_on_destruction();
 
    interprocess_upgradable_mutex *mutex() const
    { return static_cast<interprocess_upgradable_mutex*>(m_shmem.get_user_address()); }
 
- detail::managed_open_or_create_impl<shared_memory_object> m_shmem;
- typedef detail::named_creation_functor<interprocess_upgradable_mutex> construct_func_t;
+ ipcdetail::managed_open_or_create_impl<shared_memory_object> m_shmem;
+ typedef ipcdetail::named_creation_functor<interprocess_upgradable_mutex> construct_func_t;
    /// @endcond
 };
 
@@ -244,11 +244,11 @@
    : m_shmem (create_only
                ,name
                ,sizeof(interprocess_upgradable_mutex) +
- detail::managed_open_or_create_impl<shared_memory_object>::
+ ipcdetail::managed_open_or_create_impl<shared_memory_object>::
                      ManagedOpenOrCreateUserOffset
                ,read_write
                ,0
- ,construct_func_t(detail::DoCreate)
+ ,construct_func_t(ipcdetail::DoCreate)
                ,perm)
 {}
 
@@ -257,11 +257,11 @@
    : m_shmem (open_or_create
                ,name
                ,sizeof(interprocess_upgradable_mutex) +
- detail::managed_open_or_create_impl<shared_memory_object>::
+ ipcdetail::managed_open_or_create_impl<shared_memory_object>::
                      ManagedOpenOrCreateUserOffset
                ,read_write
                ,0
- ,construct_func_t(detail::DoOpenOrCreate)
+ ,construct_func_t(ipcdetail::DoOpenOrCreate)
                ,perm)
 {}
 
@@ -271,11 +271,11 @@
                ,name
                ,read_write
                ,0
- ,construct_func_t(detail::DoOpen))
+ ,construct_func_t(ipcdetail::DoOpen))
 {}
 
 inline void named_upgradable_mutex::dont_close_on_destruction()
-{ detail::interprocess_tester::dont_close_on_destruction(m_shmem); }
+{ ipcdetail::interprocess_tester::dont_close_on_destruction(m_shmem); }
 
 inline void named_upgradable_mutex::lock()
 { this->mutex()->lock(); }

Modified: trunk/boost/interprocess/sync/posix/interprocess_barrier.hpp
==============================================================================
--- trunk/boost/interprocess/sync/posix/interprocess_barrier.hpp (original)
+++ trunk/boost/interprocess/sync/posix/interprocess_barrier.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -19,8 +19,8 @@
 {
    if (count == 0)
       throw std::invalid_argument("count cannot be zero.");
- detail::barrierattr_wrapper barrier_attr;
- detail::barrier_initializer barrier
+ ipcdetail::barrierattr_wrapper barrier_attr;
+ ipcdetail::barrier_initializer barrier
       (m_barrier, barrier_attr, static_cast<int>(count));
    barrier.release();
 }

Modified: trunk/boost/interprocess/sync/posix/interprocess_condition.hpp
==============================================================================
--- trunk/boost/interprocess/sync/posix/interprocess_condition.hpp (original)
+++ trunk/boost/interprocess/sync/posix/interprocess_condition.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -68,7 +68,7 @@
 inline bool interprocess_condition::do_timed_wait
    (const boost::posix_time::ptime &abs_time, interprocess_mutex &mut)
 {
- timespec ts = detail::ptime_to_timespec(abs_time);
+ timespec ts = ipcdetail::ptime_to_timespec(abs_time);
    pthread_mutex_t* pmutex = &mut.m_mut;
    int res = 0;
    res = pthread_cond_timedwait(&m_condition, pmutex, &ts);

Modified: trunk/boost/interprocess/sync/posix/interprocess_mutex.hpp
==============================================================================
--- trunk/boost/interprocess/sync/posix/interprocess_mutex.hpp (original)
+++ trunk/boost/interprocess/sync/posix/interprocess_mutex.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -24,6 +24,7 @@
 // It is provided "as is" without express or implied warranty.
 //////////////////////////////////////////////////////////////////////////////
 
+#include <boost/interprocess/exceptions.hpp>
 #include <boost/interprocess/sync/posix/ptime_to_timespec.hpp>
 #include <boost/interprocess/detail/posix_time_types_wrk.hpp>
 #include <boost/interprocess/exceptions.hpp>
@@ -37,8 +38,8 @@
 
 inline interprocess_mutex::interprocess_mutex()
 {
- detail::mutexattr_wrapper mut_attr;
- detail::mutex_initializer mut(m_mut, mut_attr);
+ ipcdetail::mutexattr_wrapper mut_attr;
+ ipcdetail::mutex_initializer mut(m_mut, mut_attr);
    mut.release();
 }
 
@@ -50,8 +51,18 @@
 
 inline void interprocess_mutex::lock()
 {
+#ifdef BOOST_INTERPROCESS_ENABLE_TIMEOUT_WHEN_LOCKING
+ boost::posix_time::ptime wait_time
+ = boost::posix_time::microsec_clock::universal_time()
+ + boost::posix_time::milliseconds(BOOST_INTERPROCESS_TIMEOUT_WHEN_LOCKING_DURATION_MS);
+ if (!timed_lock(wait_time))
+ {
+ throw interprocess_exception(timeout_when_locking_error, "Interprocess mutex timeout when locking. Possible deadlock: owner died without unlocking?");
+ }
+#else
    if (pthread_mutex_lock(&m_mut) != 0)
       throw lock_exception();
+#endif
 }
 
 inline bool interprocess_mutex::try_lock()
@@ -70,7 +81,7 @@
    }
    #ifdef BOOST_INTERPROCESS_POSIX_TIMEOUTS
 
- timespec ts = detail::ptime_to_timespec(abs_time);
+ timespec ts = ipcdetail::ptime_to_timespec(abs_time);
    int res = pthread_mutex_timedlock(&m_mut, &ts);
    if (res != 0 && res != ETIMEDOUT)
       throw lock_exception();
@@ -93,7 +104,7 @@
          return false;
       }
       // relinquish current time slice
- detail::thread_yield();
+ ipcdetail::thread_yield();
    }while (true);
    return true;
 

Modified: trunk/boost/interprocess/sync/posix/interprocess_recursive_mutex.hpp
==============================================================================
--- trunk/boost/interprocess/sync/posix/interprocess_recursive_mutex.hpp (original)
+++ trunk/boost/interprocess/sync/posix/interprocess_recursive_mutex.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -38,8 +38,8 @@
 
 inline interprocess_recursive_mutex::interprocess_recursive_mutex()
 {
- detail::mutexattr_wrapper mut_attr(true);
- detail::mutex_initializer mut(m_mut, mut_attr);
+ ipcdetail::mutexattr_wrapper mut_attr(true);
+ ipcdetail::mutex_initializer mut(m_mut, mut_attr);
    mut.release();
 }
 
@@ -51,8 +51,18 @@
 
 inline void interprocess_recursive_mutex::lock()
 {
+#ifdef BOOST_INTERPROCESS_ENABLE_TIMEOUT_WHEN_LOCKING
+ boost::posix_time::ptime wait_time
+ = boost::posix_time::microsec_clock::universal_time()
+ + boost::posix_time::milliseconds(BOOST_INTERPROCESS_TIMEOUT_WHEN_LOCKING_DURATION_MS);
+ if (!timed_lock(wait_time))
+ {
+ throw interprocess_exception(timeout_when_locking_error, "Interprocess mutex timeout when locking. Possible deadlock: owner died without unlocking?");
+ }
+#else
    if (pthread_mutex_lock(&m_mut) != 0)
       throw lock_exception();
+#endif
 }
 
 inline bool interprocess_recursive_mutex::try_lock()
@@ -71,7 +81,7 @@
    }
    #ifdef BOOST_INTERPROCESS_POSIX_TIMEOUTS
 
- timespec ts = detail::ptime_to_timespec(abs_time);
+ timespec ts = ipcdetail::ptime_to_timespec(abs_time);
    int res = pthread_mutex_timedlock(&m_mut, &ts);
    if (res != 0 && res != ETIMEDOUT)
       throw lock_exception();
@@ -94,7 +104,7 @@
          return false;
       }
       // relinquish current time slice
- detail::thread_yield();
+ ipcdetail::thread_yield();
    }while (true);
    return true;
 

Modified: trunk/boost/interprocess/sync/posix/pthread_helpers.hpp
==============================================================================
--- trunk/boost/interprocess/sync/posix/pthread_helpers.hpp (original)
+++ trunk/boost/interprocess/sync/posix/pthread_helpers.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -24,7 +24,7 @@
 
 namespace boost {
 namespace interprocess {
-namespace detail{
+namespace ipcdetail{
 
    #if defined BOOST_INTERPROCESS_POSIX_PROCESS_SHARED
 
@@ -157,7 +157,7 @@
 
    #endif //#if defined(BOOST_INTERPROCESS_POSIX_BARRIERS) && defined(BOOST_INTERPROCESS_POSIX_PROCESS_SHARED)
 
-}//namespace detail
+}//namespace ipcdetail
 
 }//namespace interprocess
 

Modified: trunk/boost/interprocess/sync/posix/ptime_to_timespec.hpp
==============================================================================
--- trunk/boost/interprocess/sync/posix/ptime_to_timespec.hpp (original)
+++ trunk/boost/interprocess/sync/posix/ptime_to_timespec.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -17,7 +17,7 @@
 
 namespace interprocess {
 
-namespace detail {
+namespace ipcdetail {
 
 inline timespec ptime_to_timespec (const boost::posix_time::ptime &tm)
 {
@@ -29,7 +29,7 @@
    return ts;
 }
 
-} //namespace detail {
+} //namespace ipcdetail {
 
 } //namespace interprocess {
 

Modified: trunk/boost/interprocess/sync/posix/semaphore_wrapper.hpp
==============================================================================
--- trunk/boost/interprocess/sync/posix/semaphore_wrapper.hpp (original)
+++ trunk/boost/interprocess/sync/posix/semaphore_wrapper.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -37,32 +37,32 @@
 namespace interprocess {
 
 /// @cond
-namespace detail{ class interprocess_tester; }
+namespace ipcdetail{ class interprocess_tester; }
 /// @endcond
 
-namespace detail {
+namespace ipcdetail {
 
 inline bool semaphore_open
- (sem_t *&handle, detail::create_enum_t type, const char *origname,
+ (sem_t *&handle, ipcdetail::create_enum_t type, const char *origname,
     unsigned int count, const permissions &perm = permissions())
 {
    std::string name;
    #ifndef BOOST_INTERPROCESS_FILESYSTEM_BASED_POSIX_SEMAPHORES
- detail::add_leading_slash(origname, name);
+ ipcdetail::add_leading_slash(origname, name);
    #else
- detail::create_tmp_and_clean_old_and_get_filename(origname, name);
+ ipcdetail::create_tmp_and_clean_old_and_get_filename(origname, name);
    #endif
 
    //Create new mapping
    int oflag = 0;
    switch(type){
- case detail::DoOpen:
+ case ipcdetail::DoOpen:
          //No addition
       break;
- case detail::DoCreate:
+ case ipcdetail::DoCreate:
          oflag |= (O_CREAT | O_EXCL);
       break;
- case detail::DoOpenOrCreate:
+ case ipcdetail::DoOpenOrCreate:
          oflag |= O_CREAT;
       break;
       default:
@@ -99,9 +99,9 @@
    try{
       std::string sem_str;
       #ifndef BOOST_INTERPROCESS_FILESYSTEM_BASED_POSIX_SEMAPHORES
- detail::add_leading_slash(semname, sem_str);
+ ipcdetail::add_leading_slash(semname, sem_str);
       #else
- detail::tmp_filename(semname, sem_str);
+ ipcdetail::tmp_filename(semname, sem_str);
       #endif
       return 0 == sem_unlink(sem_str.c_str());
    }
@@ -160,7 +160,7 @@
 inline bool semaphore_timed_wait(sem_t *handle, const boost::posix_time::ptime &abs_time)
 {
    #ifdef BOOST_INTERPROCESS_POSIX_TIMEOUTS
- timespec tspec = detail::ptime_to_timespec(abs_time);
+ timespec tspec = ipcdetail::ptime_to_timespec(abs_time);
    for (;;){
       int res = sem_timedwait(handle, &tspec);
       if(res == 0)
@@ -195,7 +195,7 @@
 
    public:
    named_semaphore_wrapper
- (detail::create_enum_t type, const char *name, unsigned int count, const permissions &perm = permissions())
+ (ipcdetail::create_enum_t type, const char *name, unsigned int count, const permissions &perm = permissions())
    { semaphore_open(mp_sem, type, name, count, perm); }
 
    ~named_semaphore_wrapper()
@@ -220,7 +220,7 @@
    { return semaphore_unlink(name); }
 
    private:
- friend class detail::interprocess_tester;
+ friend class ipcdetail::interprocess_tester;
    void dont_close_on_destruction()
    { mp_sem = BOOST_INTERPROCESS_POSIX_SEM_FAILED; }
 
@@ -256,7 +256,7 @@
    sem_t m_sem;
 };
 
-} //namespace detail {
+} //namespace ipcdetail {
 } //namespace interprocess {
 } //namespace boost {
 

Modified: trunk/boost/interprocess/sync/scoped_lock.hpp
==============================================================================
--- trunk/boost/interprocess/sync/scoped_lock.hpp (original)
+++ trunk/boost/interprocess/sync/scoped_lock.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -141,7 +141,7 @@
    //! share ownership with an upgradable_lock).
    template<class T>
    explicit scoped_lock(BOOST_RV_REF(upgradable_lock<T>) upgr
- , typename detail::enable_if< detail::is_same<T, Mutex> >::type * = 0)
+ , typename ipcdetail::enable_if< ipcdetail::is_same<T, Mutex> >::type * = 0)
       : mp_mutex(0), m_locked(false)
    {
       upgradable_lock<mutex_type> &u_lock = upgr;
@@ -169,7 +169,7 @@
    //! do so in a non-blocking manner.
    template<class T>
    scoped_lock(BOOST_RV_REF(upgradable_lock<T>) upgr, try_to_lock_type
- , typename detail::enable_if< detail::is_same<T, Mutex> >::type * = 0)
+ , typename ipcdetail::enable_if< ipcdetail::is_same<T, Mutex> >::type * = 0)
       : mp_mutex(0), m_locked(false)
    {
       upgradable_lock<mutex_type> &u_lock = upgr;
@@ -199,7 +199,7 @@
    //! then mutex transfer occurs only if it can do so in a non-blocking manner.
    template<class T>
    scoped_lock(BOOST_RV_REF(upgradable_lock<T>) upgr, boost::posix_time::ptime &abs_time
- , typename detail::enable_if< detail::is_same<T, Mutex> >::type * = 0)
+ , typename ipcdetail::enable_if< ipcdetail::is_same<T, Mutex> >::type * = 0)
       : mp_mutex(0), m_locked(false)
    {
       upgradable_lock<mutex_type> &u_lock = upgr;
@@ -230,7 +230,7 @@
    //! do so in a non-blocking manner.
    template<class T>
    scoped_lock(BOOST_RV_REF(sharable_lock<T>) shar, try_to_lock_type
- , typename detail::enable_if< detail::is_same<T, Mutex> >::type * = 0)
+ , typename ipcdetail::enable_if< ipcdetail::is_same<T, Mutex> >::type * = 0)
       : mp_mutex(0), m_locked(false)
    {
       sharable_lock<mutex_type> &s_lock = shar;

Modified: trunk/boost/interprocess/sync/sharable_lock.hpp
==============================================================================
--- trunk/boost/interprocess/sync/sharable_lock.hpp (original)
+++ trunk/boost/interprocess/sync/sharable_lock.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -139,7 +139,7 @@
    //! "boost::interprocess::move(lock);".*/
    template<class T>
    sharable_lock(BOOST_RV_REF(upgradable_lock<T>) upgr
- , typename detail::enable_if< detail::is_same<T, SharableMutex> >::type * = 0)
+ , typename ipcdetail::enable_if< ipcdetail::is_same<T, SharableMutex> >::type * = 0)
       : mp_mutex(0), m_locked(false)
    {
       upgradable_lock<mutex_type> &u_lock = upgr;
@@ -162,7 +162,7 @@
    //! "boost::interprocess::move(lock);".
    template<class T>
    sharable_lock(BOOST_RV_REF(scoped_lock<T>) scop
- , typename detail::enable_if< detail::is_same<T, SharableMutex> >::type * = 0)
+ , typename ipcdetail::enable_if< ipcdetail::is_same<T, SharableMutex> >::type * = 0)
       : mp_mutex(0), m_locked(false)
    {
       scoped_lock<mutex_type> &e_lock = scop;

Modified: trunk/boost/interprocess/sync/upgradable_lock.hpp
==============================================================================
--- trunk/boost/interprocess/sync/upgradable_lock.hpp (original)
+++ trunk/boost/interprocess/sync/upgradable_lock.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -134,7 +134,7 @@
    //! expression: "boost::interprocess::move(lock);".
    template<class T>
    upgradable_lock(BOOST_RV_REF(scoped_lock<T>) scop
- , typename detail::enable_if< detail::is_same<T, UpgradableMutex> >::type * = 0)
+ , typename ipcdetail::enable_if< ipcdetail::is_same<T, UpgradableMutex> >::type * = 0)
       : mp_mutex(0), m_locked(false)
    {
       scoped_lock<mutex_type> &u_lock = scop;
@@ -162,7 +162,7 @@
    //! occurs only if it can do so in a non-blocking manner.
    template<class T>
    upgradable_lock( BOOST_RV_REF(sharable_lock<T>) shar, try_to_lock_type
- , typename detail::enable_if< detail::is_same<T, UpgradableMutex> >::type * = 0)
+ , typename ipcdetail::enable_if< ipcdetail::is_same<T, UpgradableMutex> >::type * = 0)
       : mp_mutex(0), m_locked(false)
    {
       sharable_lock<mutex_type> &s_lock = shar;

Modified: trunk/boost/interprocess/sync/xsi/xsi_named_mutex.hpp
==============================================================================
--- trunk/boost/interprocess/sync/xsi/xsi_named_mutex.hpp (original)
+++ trunk/boost/interprocess/sync/xsi/xsi_named_mutex.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -60,7 +60,7 @@
    //!If the named mutex previously exists, it tries to open it.
    //!Otherwise throws an error.
    xsi_named_mutex(open_or_create_t, const char *path, boost::uint8_t id, int perm = 0666)
- { this->priv_open_or_create(detail::DoOpenOrCreate, path, id, perm); }
+ { this->priv_open_or_create(ipcdetail::DoOpenOrCreate, path, id, perm); }
 
    //!Moves the ownership of "moved"'s named mutex to *this.
    //!After the call, "moved" does not represent any named mutex
@@ -112,7 +112,7 @@
    void priv_close();
 
    //!Closes a previously opened file mapping. Never throws.
- bool priv_open_or_create( detail::create_enum_t type
+ bool priv_open_or_create( ipcdetail::create_enum_t type
                            , const char *path
                            , boost::uint8_t id
                            , int perm);
@@ -152,7 +152,7 @@
 { return m_perm; }
 
 inline bool xsi_named_mutex::priv_open_or_create
- (detail::create_enum_t type, const char *path, boost::uint8_t id, int perm)
+ (ipcdetail::create_enum_t type, const char *path, boost::uint8_t id, int perm)
 {
    key_t key;
    if(path){

Modified: trunk/boost/interprocess/windows_shared_memory.hpp
==============================================================================
--- trunk/boost/interprocess/windows_shared_memory.hpp (original)
+++ trunk/boost/interprocess/windows_shared_memory.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -64,18 +64,18 @@
    //!with the access mode "mode".
    //!If the file previously exists, throws an error.
    windows_shared_memory(create_only_t, const char *name, mode_t mode, std::size_t size, const permissions& perm = permissions())
- { this->priv_open_or_create(detail::DoCreate, name, mode, size, perm); }
+ { this->priv_open_or_create(ipcdetail::DoCreate, name, mode, size, perm); }
 
    //!Tries to create a shared memory object with name "name" and mode "mode", with the
    //!access mode "mode". If the file previously exists, it tries to open it with mode "mode".
    //!Otherwise throws an error.
    windows_shared_memory(open_or_create_t, const char *name, mode_t mode, std::size_t size, const permissions& perm = permissions())
- { this->priv_open_or_create(detail::DoOpenOrCreate, name, mode, size, perm); }
+ { this->priv_open_or_create(ipcdetail::DoOpenOrCreate, name, mode, size, perm); }
 
    //!Tries to open a shared memory object with name "name", with the access mode "mode".
    //!If the file does not previously exist, it throws an error.
    windows_shared_memory(open_only_t, const char *name, mode_t mode)
- { this->priv_open_or_create(detail::DoOpen, name, mode, 0, permissions()); }
+ { this->priv_open_or_create(ipcdetail::DoOpen, name, mode, 0, permissions()); }
 
    //!Moves the ownership of "moved"'s shared memory object to *this.
    //!After the call, "moved" does not represent any shared memory object.
@@ -119,7 +119,7 @@
    void priv_close();
 
    //!Closes a previously opened file mapping. Never throws.
- bool priv_open_or_create(detail::create_enum_t type, const char *filename, mode_t mode, std::size_t size, const permissions& perm = permissions());
+ bool priv_open_or_create(ipcdetail::create_enum_t type, const char *filename, mode_t mode, std::size_t size, const permissions& perm = permissions());
 
    void * m_handle;
    mode_t m_mode;
@@ -153,7 +153,7 @@
 { return m_mode; }
 
 inline bool windows_shared_memory::priv_open_or_create
- (detail::create_enum_t type, const char *filename, mode_t mode, std::size_t size, const permissions& perm)
+ (ipcdetail::create_enum_t type, const char *filename, mode_t mode, std::size_t size, const permissions& perm)
 {
    m_name = filename ? filename : "";
 
@@ -183,12 +183,12 @@
    }
 
    switch(type){
- case detail::DoOpen:
+ case ipcdetail::DoOpen:
          m_handle = winapi::open_file_mapping
             (map_access, filename);
       break;
- case detail::DoCreate:
- case detail::DoOpenOrCreate:
+ case ipcdetail::DoCreate:
+ case ipcdetail::DoOpenOrCreate:
       {
          __int64 s = size;
          unsigned long high_size(s >> 32), low_size((boost::uint32_t)s);
@@ -204,7 +204,7 @@
          }
    }
 
- if(!m_handle || (type == detail::DoCreate && winapi::get_last_error() == winapi::error_already_exists)){
+ if(!m_handle || (type == ipcdetail::DoCreate && winapi::get_last_error() == winapi::error_already_exists)){
       error_info err = system_error_code();
       this->priv_close();
       throw interprocess_exception(err);

Modified: trunk/boost/interprocess/xsi_shared_memory.hpp
==============================================================================
--- trunk/boost/interprocess/xsi_shared_memory.hpp (original)
+++ trunk/boost/interprocess/xsi_shared_memory.hpp 2011-08-27 04:31:15 EDT (Sat, 27 Aug 2011)
@@ -66,17 +66,17 @@
    //!Creates a new XSI shared memory from 'key', with size "size" and permissions "perm".
    //!If the shared memory previously exists, throws an error.
    xsi_shared_memory(create_only_t, const xsi_key &key, std::size_t size, const permissions& perm = permissions())
- { this->priv_open_or_create(detail::DoCreate, key, perm, size); }
+ { this->priv_open_or_create(ipcdetail::DoCreate, key, perm, size); }
 
    //!Opens an existing shared memory with identifier 'key' or creates a new XSI shared memory from
    //!identifier 'key', with size "size" and permissions "perm".
    xsi_shared_memory(open_or_create_t, const xsi_key &key, std::size_t size, const permissions& perm = permissions())
- { this->priv_open_or_create(detail::DoOpenOrCreate, key, perm, size); }
+ { this->priv_open_or_create(ipcdetail::DoOpenOrCreate, key, perm, size); }
 
    //!Tries to open a XSI shared memory with identifier 'key'
    //!If the shared memory does not previously exist, it throws an error.
    xsi_shared_memory(open_only_t, const xsi_key &key)
- { this->priv_open_or_create(detail::DoOpen, key, permissions(), 0); }
+ { this->priv_open_or_create(ipcdetail::DoOpen, key, permissions(), 0); }
 
    //!Moves the ownership of "moved"'s shared memory object to *this.
    //!After the call, "moved" does not represent any shared memory object.
@@ -119,7 +119,7 @@
    private:
 
    //!Closes a previously opened file mapping. Never throws.
- bool priv_open_or_create( detail::create_enum_t type
+ bool priv_open_or_create( ipcdetail::create_enum_t type
                            , const xsi_key &key
                            , const permissions& perm
                            , std::size_t size);
@@ -148,20 +148,20 @@
 { mapping_handle_t mhnd = { m_shmid, true}; return mhnd; }
 
 inline bool xsi_shared_memory::priv_open_or_create
- (detail::create_enum_t type, const xsi_key &key, const permissions& permissions, std::size_t size)
+ (ipcdetail::create_enum_t type, const xsi_key &key, const permissions& permissions, std::size_t size)
 {
    int perm = permissions.get_permissions();
    perm &= 0x01FF;
    int shmflg = perm;
 
    switch(type){
- case detail::DoOpen:
+ case ipcdetail::DoOpen:
          shmflg |= 0;
       break;
- case detail::DoCreate:
+ case ipcdetail::DoCreate:
          shmflg |= IPC_CREAT | IPC_EXCL;
       break;
- case detail::DoOpenOrCreate:
+ case ipcdetail::DoOpenOrCreate:
          shmflg |= IPC_CREAT;
       break;
       default:
@@ -173,7 +173,7 @@
 
    int ret = ::shmget(key.get_key(), size, shmflg);
    int shmid = ret;
- if((type == detail::DoOpen) && (-1 != ret)){
+ if((type == ipcdetail::DoOpen) && (-1 != ret)){
       //Now get the size
       ::shmid_ds xsi_ds;
       ret = ::shmctl(ret, IPC_STAT, &xsi_ds);


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