|
Boost : |
From: shiwei xu (xushiweizh_at_[hidden])
Date: 2008-05-16 05:33:47
What is new?
1. Lock-free free list (workarounds ABA problem).
2. Provide both region allocators (boost::auto_alloc, boost::scoped_alloc)
and general-purpose allocators (boost::gc_alloc).
3. Notes: To fit for C++ exception semantics (See the example named
"testExceptionSemantics"), I updated the specification of GC Allocator.
Highlights:
1. Allocating memory is very fast.
2. No memory leaks. No need to delete objects manually. Or forgetting to
delete objects is allowed.
Thanks:
* Steven Watanabe
* Scott McMurray
* Tim
* Diduck, Lance
To gain the source code, you can:
1. Svn checkout http://winx.googlecode.com/svn/tags/boost-memory-0.2.00/.
2. Svn checkout http://svn.boost.org/svn/boost/sandbox/memory/.
--- What is boost-memory? It provides allocators named "GC Allocator". Note "GC Allocator" isn't GC. GC Allocator is different from STL Allocator. The following is minimum specification for GC Allocator: typedef void (*DestructorType)(void* data); concept GCAllocator { // Allocate memory without given a cleanup function void* allocate(size_t cb); // Allocate unmanaged memory with a cleanup function void* unmanaged_alloc(size_t cb, DestructorType fn); // Commit unmanaged memory to be managed. void* manage(void* p, destructor_t fn); // Deprecated: allocate memory with a cleanup function void* allocate(size_t cb, DestructorType fn) { return manage(unmanaged_alloc(cb, fn), fn); } // Cleanup and deallocate all allocated memory by this GC Allocator void clear(); // Swap two GCAllocator instances void swap(GCAllocator& o); }; For more information about GC Allocator, refer to http://www.codeproject.com/KB/cpp/gc-allocator.aspx
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk