[gclist] Why circular destructor dependencies occur.

Charles Fiterman cef@geode.geodesic.com
Mon, 18 Mar 1996 07:12:23 -0600


Persistant objects generally have destructiors.
Since presistant objects usually refer to other
persistant objects its easy to get destructor
dependcies.

This suggests a division between destructors
and finalizers that can be used. Destructors
destroy! They wreck the objects invariants
so it can no longer be used. A file reference
object has destructors which close it. Finalizers
clean up. They leave the objects invariants.

Keeping a division between destructors and
finalizers breaks most loops. Further uncooperative
collectors can use this difference.