A subpool may be explicitly deallocated using Unchecked_Deallocate_Subpool.
with System.Storage_Pools.Subpools;
procedure Ada.Unchecked_Deallocate_Subpool
(Subpool :
in out System.Storage_Pools.Subpools.Subpool_Handle)
with Global =>
in out all;
1.
Any of the objects allocated from the subpool that still exist are finalized
in an arbitrary order;
2.
All of the objects allocated from the subpool cease to exist;
3.
Deallocate_Subpool(Pool_of_Subpool(Subpool).all, Subpool);
4.
The subpool ceases to belong to any pool.
Finalization of a Root_Storage_Pool_With_Subpools
object finalizes all subpools that belong to that pool that have not
yet been finalized.