2003/11/03 07:36:40
[org.ibex.core.git] / src / org / xwt / XWT.java
index 0c01e67..53514ed 100644 (file)
@@ -88,6 +88,10 @@ public final class XWT extends JS.Obj {
             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));
@@ -195,15 +199,15 @@ public final class XWT extends JS.Obj {
         }
     }
 
+    // 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;
     }