if (checkOnly) return Boolean.TRUE;
return new Res.Cab((Res)args.elementAt(0));
+ } else if (method.equals("cache")) {
+ if (checkOnly) return Boolean.TRUE;
+ return new Res.CachedRes((Res)args.elementAt(0), "resources", true);
+
} else if (method.equals("watchProgress")) {
if (checkOnly) return Boolean.TRUE;
return new Res.ProgressWatcher((Res)args.elementAt(0), (Function)args.elementAt(1));
}
}
+ // FIXME
public static Object sleep(final int i) {
final JS.Context jsthread = JS.Context.current();
final long currentTime = System.currentTimeMillis();
- final Scheduler.Task task = new Scheduler.Task() { public void perform() {
- // FIXME: don't busy-wait
- if (System.currentTimeMillis() - currentTime < i) Scheduler.add(this);
- else jsthread.resume();
- } };
- Scheduler.add(task);
+ new Thread() { public void run() {
+ try { Thread.sleep(i); } catch (InterruptedException e) { }
+ Scheduler.add(new Scheduler.Task() { public void perform() {
+ jsthread.resume();
+ } }); } }.start();
return JS.Context.pause;
}