Acquires a resource, uses the resource, and then releases the resource.
Acquires a resource, uses the resource, and then releases the resource.
However, unlike acquireReleaseWith
, the separation of these phases
allows the acquisition to be interruptible.
Useful for concurrent data structures and other cases where the 'deallocator' can tell if the allocation succeeded or not just by inspecting internal / external state.