A pool resource consists of a collection of
pools,
serving requests for different block sizes
. Each individual pool manages a collection of
chunks
that are in turn divided into blocks of uniform size,
returned via calls to
do_allocate. Each call to
do_allocate(size, alignment) is dispatched
to the pool serving the smallest blocks accommodating at least
size bytes
.