- public final Object call(final JS.Array args) throws JS.Exn {
- final JS.Context cx = JS.Context.current();
- Scheduler.add(new Scheduler.Task() { public void perform() {
- Object ret;
- try {
- ret = call2(args);
- } catch (IOException se) {
- if (Log.on) Log.log(this, se);
- throw new JS.Exn("socket exception: " + se);
- }
- cx.resume(ret);
- } });
- return JS.Context.pause;
+ public final Object call(final JSArray args) throws JS.Exn {
+ final Callback callback = JSContext.pause();
+ new java.lang.Thread() {
+ public void run() {
+ try {
+ final Object ret = call_(args);
+ Scheduler.add(new Scheduler.Task() { public void perform() { callback.call(ret); } });
+ } catch (IOException se) {
+ if (Log.on) Log.log(this, se);
+ throw new JS.Exn("socket exception: " + se);
+ }
+ } }.start();
+ return null;