2002/08/07 03:26:00
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 06:49:31 +0000 (06:49 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 06:49:31 +0000 (06:49 +0000)
darcs-hash:20040130064931-2ba56-c8fd4930751111ab982504437cb42e79af17d04d.gz

CHANGES
src/org/xwt/MessageQueue.java

diff --git a/CHANGES b/CHANGES
index 547a8db..f3deac4 100644 (file)
--- a/CHANGES
+++ b/CHANGES
 06-Jul megacz Context.java: workaround for GCJ bug which causes
               MessageFormatter to choke on { and }
 
+06-Jul megacz MessageQueue.java: fixed MessageQueueWatcher so that it
+              works even when an infinite loop occurs in a _SizeChange
+              or _PosChange trap.
+
index b6643c6..5f8b17d 100644 (file)
@@ -115,10 +115,13 @@ public class MessageQueue extends Thread {
         public MessageQueueWatcher() { start(); }
         public void run() {
             while(true) {
-                if (m != null && m == MessageQueue.currentlyPerforming) {
+                if ((m != null && m == MessageQueue.currentlyPerforming) || MessageQueue.working) {
                     Context cx;
                     String what;
-                    if (m instanceof ThreadMessage) {
+                    if (m == null) {
+                        cx = Context.getContextForThread(MessageQueue.singleton);
+                        what = "trap";
+                    } else if (m instanceof ThreadMessage) {
                         ThreadMessage tm = (ThreadMessage)m;
                         cx = Context.getContextForThread(tm);
                         what = "background thread";