Ben Collins-Sussman wrote: > Our solution: > Over at Google, we simply hacked APR to *never* hold on to blocks for > recycling. Essentially, this makes apr_pool_destroy() always free() > the block, and makes apr_pool_create() always call malloc() malloc. > Poof, all the memory leak went away instantly. >
Why not creating allocator for each of those subpools. On pool_destroy it'll destroy allocator and call free() consuming the global pool only for allocating subpools which are constant in size, thus no fragmentation can occur. Regards -- ^(TM)
