X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2FScheduler.java;fp=src%2Forg%2Fxwt%2FScheduler.java;h=2cb7892ab5242aa7492bebca5cff4d20d2b99666;hb=214fe5c02d3f0fb9c3c61128a100e6a3cb01668e;hp=95fd6bf321b4395f2bf089b7a52371ef9a4d5739;hpb=605c83ebfebbf069a495dd9a26e509e30465aa08;p=org.ibex.core.git diff --git a/src/org/xwt/Scheduler.java b/src/org/xwt/Scheduler.java index 95fd6bf..2cb7892 100644 --- a/src/org/xwt/Scheduler.java +++ b/src/org/xwt/Scheduler.java @@ -5,24 +5,22 @@ import java.util.*; import org.xwt.js.*; import org.xwt.util.*; -// FEATURE: reimplement Watcher /** Implements cooperative multitasking */ public class Scheduler { - private static Scheduler singleton = new Scheduler(); - public static void run() { singleton.do_run(); } + public static final Scheduler singleton = Platform.getScheduler(); protected Scheduler() { } - public static abstract class Task implements Callback { public abstract Object call(Object o); } - - private static Queue runnable = new Queue(50); + public static abstract class Task { public abstract void perform(); } + protected static Queue runnable = new Queue(50); public static void add(Task t) { singleton.runnable.append(t); } - public void do_run() { + public void run() { while(true) { Task t = (Task)runnable.remove(true); try { - t.call(null); + t.perform(); + // FIXME: be smarter about this for(int i=0; i