Represents a Cancelable that only executes the canceling logic when all
dependent cancelable objects have been canceled.
The given callback gets called after our RefCountCancelable is canceled
and after all dependent cancelables have been canceled along with the
In other words, lets say for example that we have acquired 2 children.
In order for the cancelable to get canceled, we need to:
The implementation is thread-safe and cancellation order doesn't matter.
Acquires a new Cancelable.
Cancels the unit of work represented by this reference.
Guaranteed idempotency - calling it multiple times should have the
same side-effect as calling it only once. Implementations
of this method should also be thread-safe.
true in case this cancelable hasn't been canceled,
or false otherwise.