[gclist] Buffy finalizer slayer.

David Chase chase@world.std.com
Fri, 11 Jun 1999 10:02:01 -0400


At 08:03 AM 6/11/99 -0500, Charles Fiterman wrote:
>So instead of running a finalizer lets send out a death notice. I call
>objects receiving a death notice watcher objects. One way of building a
>watcher object is to include a weak pointer to the object to be shut down.

>Finalizers may allocate storage and trigger a collect from within the
>collector.

>Finalizer objects require extra collector overhead in a world where we are
>judged by latency. Watcher objects run at the convenience of the mutator.

You should probably go have a look at weak/soft/phantom references
in the "Java 2" (aka jdk1.2) documentation.  However, I find these
weak references are no easier or cheaper to implement than
finalization.  It has also been our experience ("our" == me and
colleagues) that Finalizer objects do not run "within" the collector;
instead, the collector queues them and hands them off to the mutator,
where they are run in one of a collection of threads designated
for this purpose (not under user control, but not randomly chosen,
either).


David Chase                    --  chase@naturalbridge.com
NaturalBridge LLC              --  http://www.naturalbridge.com
BulletTrain bytecode compiler  --  when you can't wait for performance