Have run into a bug with glibc's malloc(): http://sourceware.org/bugzilla/show_bug.cgi?id=4349 and am thinking a work around for now until updating to later version of glibc is to do pooled allocation for small objects that have many instances coming and going.
The small objects are all derived from an abstract base class. I'd like to find a good pattern (using boost is ok) to provide the pool allocation automatically in the base class and have it work properly for the many derived classes.
Would this be done by defining an operator new() in the abstract base class? How would it organize having different pools for each derived class that could have different actual memory size?