I’m a bit late to the game with this, but you know what they say: Better late than never.
Deepend is a storage pool with Subpool capabilities for Ada 2005 where all the objects in a subpool can be reclaimed all at once, instead of requiring each object to be individually reclaimed one at a time. Subpools may be completely independent pools, or they may be chained together in order to extend the lifetime of child pools to that of the lifetime of the root parent pool. Deepend is a binding to the Apache Runtime Pools implementation. Rather than deallocate items individually which is error prone and subceptable
to memory leaks and other memory issues, a subpool can be freed all at once automatically when the pool object goes out of scope. In addition, the pool may be reclaimed multiple times before the end of its lifetime through an explicit call to Unchecked_Deallocate.
You can read Brad’s full release announcement here, and in case you’re wondering about the name of the binding, there’s also a nice explanation for that:
- A pool has to be pretty deep if it is to have subs floating in it.
- Hopefully it can be used to write deependable software.
- Hopefully it doesn’t mean this is something the author has gone off of.
Those are, IMHO, all very good reasons. Go check it out.