summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-13 23:09:23 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-13 23:09:23 +0000
commit2d32a9b6a4342b47e9133f75d5c5b23ff42ce36d (patch)
treee9b663583e713a1ac78ca30e1a59b238265e40fd
parent67f25eeb3d5ebb1832d9328beed72482627458f0 (diff)
downloadppe42-gcc-2d32a9b6a4342b47e9133f75d5c5b23ff42ce36d.tar.gz
ppe42-gcc-2d32a9b6a4342b47e9133f75d5c5b23ff42ce36d.zip
Fix for PR libgcj/4859:
* java/util/Timer.java (TaskQueue.isStopped): New method. (Scheduler.run): Don't re-schedule task if queue has been stopped. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46994 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libjava/ChangeLog7
-rw-r--r--libjava/java/util/Timer.java13
2 files changed, 18 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 9dfcd7b32e9..fd3e7bab640 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,10 @@
+2001-11-13 Tom Tromey <tromey@redhat.com>
+
+ Fix for PR libgcj/4859:
+ * java/util/Timer.java (TaskQueue.isStopped): New method.
+ (Scheduler.run): Don't re-schedule task if queue has been
+ stopped.
+
2001-11-07 Tom Tromey <tromey@redhat.com>
* Makefile.in: Rebuilt.
diff --git a/libjava/java/util/Timer.java b/libjava/java/util/Timer.java
index 32c0bea3b3f..2c7197f2dbe 100644
--- a/libjava/java/util/Timer.java
+++ b/libjava/java/util/Timer.java
@@ -285,6 +285,14 @@ public class Timer
this.notify();
}
+ /**
+ * This method returns <code>true</code> if the queue has been
+ * stopped.
+ */
+ public synchronized boolean isStopped ()
+ {
+ return this.heap == null;
+ }
} // TaskQueue
/**
@@ -337,8 +345,9 @@ public class Timer
}
}
- // Calculate next time and possibly re-enqueue
- if (task.scheduled >= 0)
+ // Calculate next time and possibly re-enqueue.
+ // Don't bother re-scheduling if the queue has been stopped.
+ if (! queue.isStopped () && task.scheduled >= 0)
{
if (task.fixed)
{
OpenPOWER on IntegriCloud