From: Godmar Back (gback@cs.utah.edu)
Date: Thu Dec 17 1998 - 15:06:38 EST
>
> On Dec 17, 1998, Godmar Back <gback@marker.cs.utah.edu> wrote:
>
> > Class gc is "automatic"; there is no finalizer for class objects
> > at this time.
>
> Do you mean the classFinalize() method is not invoked? It shouldn't
> be hard to run it before the function that does the actual clean-up.
> But then, the classFinalizer might make the class reachable again, so
> the constant pool should not be disallocated.
Do you mean the static classFinalize method that early versions of the
JLS wanted you to invoke? This thing's gone.
As for threads, all functions can actually deal with destroyed threads
because that's exactly the state that they're in before they're started.
I.e., all functions can deal with privateInfo == null.
Note the race condition that was recently fixed in finalizeThread.
>
> > Note that classes keep their loader alive, while the loader does
> > not (per se) keep the classes alive.
>
> Shouldn't it maintain a hashtable pointing to all classes, so as to
> (as a side effect) keep them all alive?
>
This is what the class entry pool does.
I think Sun implements this as a hashtable, but unless I hear
something from Gilad that would indicate we couldn't get by
with the class entry pool, we should be fine.
- Godmar
This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:20 EDT