# Listpool

A block allocator built from a single, contiguous array of memory that maintains
free and used blocks in doubly linked lists.

A `listpool` is similar to a `mempool`, but the additional structure allows it
to:

- Allocate and free blocks in constant time.
- Traverse used blocks in linear time in the number of used blocks, as opposed
  to the total number of blocks like in a `mempool`.

A `listpool` otherwise provides the same guarantees and characteristics as a
`mempool`.