$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r54179 - in sandbox/monotonic: boost/monotonic libs/monotonic/test
From: christian.schladetsch_at_[hidden]
Date: 2009-06-22 01:41:39
Author: cschladetsch
Date: 2009-06-22 01:41:39 EDT (Mon, 22 Jun 2009)
New Revision: 54179
URL: http://svn.boost.org/trac/boost/changeset/54179
Log:
added "mini-heap" functionality for storage
Text files modified: 
   sandbox/monotonic/boost/monotonic/storage.hpp                 |    14 ++++++++++++--                          
   sandbox/monotonic/libs/monotonic/test/compare_memory_pool.cpp |     7 +++++--                                 
   2 files changed, 17 insertions(+), 4 deletions(-)
Modified: sandbox/monotonic/boost/monotonic/storage.hpp
==============================================================================
--- sandbox/monotonic/boost/monotonic/storage.hpp	(original)
+++ sandbox/monotonic/boost/monotonic/storage.hpp	2009-06-22 01:41:39 EDT (Mon, 22 Jun 2009)
@@ -146,14 +146,24 @@
                                 return max_size();
                         }
 
-			size_t used() const
+			size_t fixed_used() const
+			{
+				return fixed.used();
+			}
+
+			size_t heap_used() const
                         {
-				size_t count = fixed.used();
+				size_t count = 0;
                                 BOOST_FOREACH(Link const &link, chain)
                                         count += link.used();
                                 return count;
                         }
 
+			size_t used() const
+			{
+				return fixed_used() + heap_used();
+			}
+
                         size_t num_links() const
                         {
                                 return chain.size();
Modified: sandbox/monotonic/libs/monotonic/test/compare_memory_pool.cpp
==============================================================================
--- sandbox/monotonic/libs/monotonic/test/compare_memory_pool.cpp	(original)
+++ sandbox/monotonic/libs/monotonic/test/compare_memory_pool.cpp	2009-06-22 01:41:39 EDT (Mon, 22 Jun 2009)
@@ -439,8 +439,9 @@
         }
 
         {
-		// storage starts on the stack, then merges into the heap as needed
-		monotonic::storage<> storage;
+		length = 4;
+		// storage starts on the stack (in this case, 10k of it), then merges into the heap as needed
+		monotonic::storage<10*1024> storage;
                 for (size_t n = 0; n < length; ++n)
                 {
                         // create a new int from storage
@@ -467,6 +468,8 @@
 
                         // destroy objects. this only calls the destructors; it does not release memory
                         storage.destroy(s1);
+
+			cout << "storage.fixed, heap, total used: " << storage.fixed_used() << ", " << storage.heap_used() << ", " << storage.used() << endl;
                 }
                 // storage is released. if this was only ever on the stack, no work is done
         }