X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2FMessageQueue.java;h=5f8b17dfcbc3752a5a310195861ca22f8fcf7c94;hb=ce05c727a51c093b14816a88c0cdd33951396d93;hp=b5f7fde97846448a50bf27fdddfac368d5d74c80;hpb=4edeb03ae486109537497dfd4e3355ee505d356c;p=org.ibex.core.git diff --git a/src/org/xwt/MessageQueue.java b/src/org/xwt/MessageQueue.java index b5f7fde..5f8b17d 100644 --- a/src/org/xwt/MessageQueue.java +++ b/src/org/xwt/MessageQueue.java @@ -32,7 +32,7 @@ public class MessageQueue extends Thread { private static Queue events = new Queue(50); /** the number of objects in the queue that are not subclasses of ThreadMessage */ - private static volatile int nonThreadEventsInQueue = 0; + public static volatile int nonThreadEventsInQueue = 0; /** the message currently being performed */ static Message currentlyPerforming = null; @@ -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";