X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2FScheduler.java;h=5439bf917d9a37401698400f0ce2936a772e73f2;hb=9c2602143956cd39ecf5ef4c9eb31f5f56b5bd66;hp=ce59d1e2bf58e44bb69f9e318fb8b0dd038d0374;hpb=cc7188a01f70a4f5e6eb12a4f72e3b7d3e897b27;p=org.ibex.core.git diff --git a/src/org/xwt/Scheduler.java b/src/org/xwt/Scheduler.java index ce59d1e..5439bf9 100644 --- a/src/org/xwt/Scheduler.java +++ b/src/org/xwt/Scheduler.java @@ -26,6 +26,29 @@ public class Scheduler { private static Task current = null; public static Task current() { return current; } + /** synchronizd so that we can safely call it from an event-delivery thread, in-context */ + private static volatile boolean rendering = false; + private static volatile boolean again = false; + public static void renderAll() { + if (rendering) { again = true; return; } + synchronized(Scheduler.class) { + try { + rendering = true; + do { + again = false; + for(int i=0; i