From 2f54a73fc1a1466dbe576bfe0aab80cea9d4ff93 Mon Sep 17 00:00:00 2001
From: David Daney <ddaney@avtrex.com>
Date: Sat, 20 Sep 2003 02:57:07 +0000
Subject: Reference.java (clear): Set referent to null and synchronize.

2003-09-19  David Daney <ddaney@avtrex.com>

	* java/lang/ref/Reference.java (clear): Set referent to null and
	synchronize.

From-SVN: r71597
---
 libjava/java/lang/ref/Reference.java | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

(limited to 'libjava/java/lang/ref/Reference.java')

diff --git a/libjava/java/lang/ref/Reference.java b/libjava/java/lang/ref/Reference.java
index 2f6235e..a6385a8 100644
--- a/libjava/java/lang/ref/Reference.java
+++ b/libjava/java/lang/ref/Reference.java
@@ -176,7 +176,12 @@ public abstract class Reference
    */
   public void clear()
   {
-    cleared = true;
+    // Must synchronize so changes are visible in finalizer thread.
+    synchronized (lock)
+      {
+        referent = null;
+        cleared = true;
+      }
   }
 
   /**
-- 
cgit v1.1