This is the mail archive of the
mauve-discuss@sources.redhat.com
mailing list for the Mauve project.
Re: Mauve patch
- From: Sascha Brawer <brawer at dandelis dot ch>
- To: <mauve-discuss at sources dot redhat dot com>, Archie Cobbs <archie at dellroad dot org>
- Cc: <commit-classpath at gnu dot org>
- Date: Tue, 6 Apr 2004 13:52:05 +0200
- Subject: Re: Mauve patch
- References: <200404060330.i363UY1B018067@arch20m.dellroad.org>
Archie Cobbs <archie@dellroad.org> wrote on Mon, 5 Apr 2004 22:30:34 -0500:
>Is this the right place to send Mauve patches? If not please point me
>(or the patch) in the right direction.
There's a list mauve-discuss@sources.redhat.com (presumably with mostly
the same subscribers as commit-classpath@gnu.org, although there seem to
be also a few non-Classpath people there).
>In JC, phantom references are enqueued on the next finalizer run
>after the one that finalizes the object, and finalizer runs only
>happen after a GC cycle, therefore the patch below is required to
>make JC pass the test; ie, the test is being too strict.
>Index: gnu/testlet/java/lang/ref/PhantomReference/phantom.java
>===================================================================
>RCS file: /cvs/mauve/mauve/gnu/testlet/java/lang/ref/PhantomReference/
>phantom.java,v
>retrieving revision 1.1
>diff -u -r1.1 phantom.java
>--- gnu/testlet/java/lang/ref/PhantomReference/phantom.java 27 Sep
>2001 15:44:09 -0000 1.1
>+++ gnu/testlet/java/lang/ref/PhantomReference/phantom.java 6 Apr
>2004 03:28:19 -0000
>@@ -70,6 +70,8 @@
>
> PhantomReference wr = try1 (q, harness);
> System.gc ();
>+ Thread.yield();
>+ System.gc ();
>
> Reference r = null;
> try
Does this really guarantee that the finalizer has run? Couldn't this also
lead to any other thread, such as some VM-internal thread, without
running the finalizer? If so, you might want to call Object.notify in the
finalizer and Object.wait at the above code location.
-- Sascha
Sascha Brawer, brawer@dandelis.ch, http://www.dandelis.ch/people/brawer/