summaryrefslogtreecommitdiffstats
path: root/libjava
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-09-20 02:57:07 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-09-20 02:57:07 +0000
commit8c970a04e2a2223363c14af660cd53fcfa8a1cc0 (patch)
tree599476f4a666c655364b56af95e2969aeb26d471 /libjava
parent939852640aadc1f6ce76e15efba37d836d4261be (diff)
downloadppe42-gcc-8c970a04e2a2223363c14af660cd53fcfa8a1cc0.tar.gz
ppe42-gcc-8c970a04e2a2223363c14af660cd53fcfa8a1cc0.zip
2003-09-19 David Daney <ddaney@avtrex.com>
* java/lang/ref/Reference.java (clear): Set referent to null and synchronize. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71597 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/java/lang/ref/Reference.java7
2 files changed, 11 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index a7648b38e24..4d5c52ec368 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2003-09-19 David Daney <ddaney@avtrex.com>
+
+ * java/lang/ref/Reference.java (clear): Set referent to null and
+ synchronize.
+
2003-09-19 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/NIODatagramSocket.java,
diff --git a/libjava/java/lang/ref/Reference.java b/libjava/java/lang/ref/Reference.java
index 2f6235e3ba8..a6385a81617 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;
+ }
}
/**
OpenPOWER on IntegriCloud