
On Tuesday 03 November 2009 05:45:48 Stefan Strasser wrote:
Am Tuesday 03 November 2009 04:08:14 schrieb Diederick C. Niehorster: I actually considered that, but while recreating the functionality of Boost.Pool is pretty easy, given that Boost.Intrusive now exists, a generic pool allocation library is some effort. some things that come to mind is multiple allocation algorithms to meet different time complexity and memory overhead needs, pools that allow allocation of different-sized objects, maybe even a generic "allocation algorithm" library that is not limited to chunks of memory, but can be used for disk space and other arbitrary ranges, like allocating IDs.
I recently tried to use the std::allocator drop-in replacement from Boost.Pool in a massively multithreaded program running on a machine with a lot of cores. The result was very disappointing. I found my threads being serialized along the std::allocator interface (same problem as with the std::allocator from my STL). A nice feature for Boost.Pool would be the ability to scale in multithreaded environments (like for example the tbb::scaleable_allocator from the Intel Threading Building Blocks). KR, Frank