3.3 Hierarchical Garbage Collection
We describe a hierarchical garbage collector, dubbed HGC, that
takes advantage of disentanglement to perform concurrent garbage
collection at the granularity of tasks. The collector HGC can collect
any heap in the heap hierarchy by stopping the task that owns
the heap along with its descendant tasks, while all other (nondescendant)
tasks continue executing. Any number of independent
heaps, which are not descendants and ancestors of each other, can
be collected in parallel. The collector HGC is thus able to perform
garbage collection without incurring additional synchronization
between the mutator and the collector. The main result of this
subsection is the proof of correctness for HGC.