import co.paralleluniverse.fibers.Fiber;
import co.paralleluniverse.fibers.SuspendExecution;
import co.paralleluniverse.fibers.Suspendable;
import co.paralleluniverse.strands.SuspendableRunnable;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
public class QuasarCallableDemo {
public static void main(String[] args) throws InterruptedException{
final Callable callable = new Callable() {
@Override
@Suspendable
public Object call() throws Exception {
Fiber.sleep(100);
Fiber.sleep(100);
System.out.println("run");
return null;
}
};
final FutureTask futureTask = new FutureTask(callable);
SuspendableRunnable suspendableRunnable = new SuspendableRunnable() {
@Override
public void run() throws SuspendExecution, InterruptedException {
try {
System.out.println("i am in");
// callable.call();
futureTask.run();
} catch (Exception e) {
}
}
};
new Fiber<Void>(suspendableRunnable).start();
Thread.sleep(1000);
System.exit(0);
}
}
WARNING: Uninstrumented whole methods ('**') or single calls ('!!') detected: 	at co.paralleluniverse.common.util.ExtendedStackTrace.here() (ExtendedStackTrace.java:46)	at co.paralleluniverse.fibers.Fiber.checkInstrumentation() (Fiber.java:1696)	at co.paralleluniverse.fibers.Fiber.verifySuspend(co.paralleluniverse.fibers.Fiber) (Fiber.java:1669)	at co.paralleluniverse.fibers.Fiber.verifySuspend() (Fiber.java:1664)	at co.paralleluniverse.fibers.Fiber.sleep(long,java.util.concurrent.TimeUnit) (Fiber.java:695)	at co.paralleluniverse.fibers.Fiber.sleep(long) (Fiber.java:687)	at com.meituan.mtthrift.test.QuasarCallableDemo$1.call() (QuasarCallableDemo.java:19)	at java.util.concurrent.FutureTask.run() (FutureTask.java:264) **	at com.meituan.mtthrift.test.QuasarCallableDemo$2.run() (QuasarCallableDemo.java:33)	at co.paralleluniverse.strands.SuspendableUtils$VoidSuspendableCallable.run() (SuspendableUtils.java:42)	at co.paralleluniverse.strands.SuspendableUtils$VoidSuspendableCallable.run() (SuspendableUtils.java:30)	at co.paralleluniverse.fibers.Fiber.run() (Fiber.java:1099)	at co.paralleluniverse.fibers.Fiber.run1() (Fiber.java:1094) final SuspendableCallable callable = new SuspendableCallable() {
             @Suspendable
             public Object run() throws SuspendExecution, InterruptedException {
                 Fiber.sleep(100);
                 Fiber.sleep(100);
                 System.out.println("run");
                 return null;
             }
         };
  new Fiber<Void>(callable).start();