[gclist] Precise GC's performance [really finalization protocol]

Mark Tillotson markt@harlequin.co.uk
Wed, 6 Mar 96 18:59:52 GMT


mps@geode.geodesic.com (Mike Spertus) wrote:
> If I understand you correctly, any object in a cycle of finalizable objects 
> will be marked, preventing finalization of the object for eternity. Also,
> I don't see why it matters whether you defer the marking to this stage.

I don't believe so---IF the cycle is purely between the finalizable
objects, AND if none of them are revived during the "kill methods", then
the next time round the GC they are no longer on the list of
finalizable objects, and hence form a detached cycle unreachable from the
roots.
The fact that they get marked this time does nothing more than defer
their collection one GC-cycle.  The removal of the objects from the
finalizable list is the key thing---it demotes them to the status of
normal objects after the kill method has been run.

Does this clarify things?

Mark Tillotson
[ markt@harlequin.co.uk | http://www.harlequin.co.uk/ | +44 1223 873829   ]
[ homepage http://www.hal.com/services/juggle/home/markt@harlequin.co.uk/ ]