This is the mail archive of the mailing list for the Mauve project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Mauve patch

Sascha Brawer wrote:
Archie Cobbs <> 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  (presumably with mostly
the same subscribers as, 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/
RCS file: /cvs/mauve/mauve/gnu/testlet/java/lang/ref/PhantomReference/,v
retrieving revision 1.1
diff -u -r1.1
--- gnu/testlet/java/lang/ref/PhantomReference/	27 Sep
2001 15:44:09 -0000	1.1
+++ gnu/testlet/java/lang/ref/PhantomReference/	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;

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.

I'm not sure a wait/notify will help. It might also just hang the VM since no garbage collection might occur. Probably the only real solution would be to force an OutOfMemoryError. Before the VM may throw such an error it has to try to clean up memory. But probably not all VMs survive such a test ;-)


-- Sascha

Sascha Brawer,,

-- Ingo Prötel aicas GmbH Haid-und-Neu-Str. 18 phone +49 721 663 968-32 76131 Karlsruhe fax +49 721 663 968-93 Germany

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]