GC problem (finalisers) & comments
Bernie Solomon
bernard at UG.EDS.COM
Thu Apr 10 03:43:19 PDT 1997
James Kevin Doyle wrote:
> It was my impression that this is accomplished in Kaffe by virtue
> of the fact that the finalizing list is accessible from the Finalizer
> Thread object, which itself is marked and walked. Is this true?
The finaliser loop (finaliseMan in gc-incremental.c) simply walks down
the list of objects to be finalised (sorry about the s's but I'm a Brit
too!) and if an object needs a finaliser called calls it and if that is
significant doesn't free the memory. However each object is treated
completely independently and in one loop hence ignoring the whole
f-reachable concept. One thought I had was to go down this loop and
simply stop doing any freeing as soon as you hit the first object with a
finaliser but this relies on hitting parents before children - I am not
sure whether this is the case - I suspect not. Of course another
possiblity is to do a mark scan to get all f-reachable objects correctly
(maybe this is in fact *necessary* rather than just possible).
> If the parent and child (referencer and referenced object) are both
> not reachable *and* not f-reachable, then the order of "freeing" is
> irrelevant. No further computation will be able to see either of the
> objects. If the objects are still f-reachable, then no order of freeing
> is correct, because computation is pending, and the parent as well as the
> child may be accessed.
True - I think the problem is just that f-reachable isn't a concept in
the current implementation.
> The idea of finalizer-order is different, though, since you're ordering
> computation that is visible to the application. Java, however, specifies
> no particular order of finalizer execution.
That's what I would expect.
> Referencing Section 12.6.1 ("Implementing Finalization") in the Java
> Language Specification by Gosling,Joy,and Steele may help clear up the
> subtleties of what finalization means and requires.
A good reference and the state diagram definitely helps.
However I personally don't currently have time to try and fix all this
up though it does seem something important to mend.
Regards
--
Bernie Solomon (bernard at edsug.com or Bernard.Solomon at acm.org)
Unigraphics Architecture, EDS-Unigraphics, Cambridge, UK
More information about the kaffe
mailing list