From: megacz Date: Fri, 30 Jan 2004 06:49:31 +0000 (+0000) Subject: 2002/08/07 03:26:00 X-Git-Tag: RC3~1597 X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=commitdiff_plain;h=0ba69e7c70ceee9a0ab16aa7c4ed5c57f530b277 2002/08/07 03:26:00 darcs-hash:20040130064931-2ba56-c8fd4930751111ab982504437cb42e79af17d04d.gz --- diff --git a/CHANGES b/CHANGES index 547a8db..f3deac4 100644 --- a/CHANGES +++ b/CHANGES @@ -316,3 +316,7 @@ 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. + diff --git a/src/org/xwt/MessageQueue.java b/src/org/xwt/MessageQueue.java index b6643c6..5f8b17d 100644 --- a/src/org/xwt/MessageQueue.java +++ b/src/org/xwt/MessageQueue.java @@ -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";