public IRubyObject allocate(Ruby runtime, RubyClass klazz) { return new ThreadFiber(runtime, klazz); } });
public IRubyObject allocate(Ruby runtime, RubyClass klazz) { return new ThreadFiber(runtime, klazz); } });
public IRubyObject allocate(Ruby runtime, RubyClass klazz) { return new ThreadFiber(runtime, klazz); } });
public IRubyObject allocate(Ruby runtime, RubyClass klazz) { return new ThreadFiber(runtime, klazz); } });
@Test public void simpleRequestResponse() throws InterruptedException { Fiber req = new ThreadFiber(); Fiber reply = new ThreadFiber(); req.start(); reply.start(); RequestChannel<String, Integer> channel = new MemoryRequestChannel<String, Integer>(); Callback<Request<String, Integer>> onReq = new Callback<Request<String, Integer>>() { public void onMessage(Request<String, Integer> message) { assertEquals("hello", message.getRequest()); message.reply(1); } }; channel.subscribe(reply, onReq); final CountDownLatch done = new CountDownLatch(1); Callback<Integer> onReply = new Callback<Integer>() { public void onMessage(Integer message) { assertEquals(1, message.intValue()); done.countDown(); } }; AsyncRequest.withOneReply(req, channel, "hello", onReply); assertTrue(done.await(10, TimeUnit.SECONDS)); req.dispose(); reply.dispose(); }
public static void initRootFiber(ThreadContext context, RubyThread currentThread) { Ruby runtime = context.runtime; ThreadFiber rootFiber = new ThreadFiber(runtime, runtime.getFiber()); rootFiber.data = new FiberData(new FiberQueue(runtime), currentThread, rootFiber); rootFiber.thread = currentThread; context.setRootFiber(rootFiber); }
public static void initRootFiber(ThreadContext context, RubyThread currentThread) { Ruby runtime = context.runtime; ThreadFiber rootFiber = new ThreadFiber(runtime, runtime.getFiber()); rootFiber.data = new FiberData(new FiberQueue(runtime), currentThread, rootFiber); rootFiber.thread = currentThread; context.setRootFiber(rootFiber); }
public static void initRootFiber(ThreadContext context) { Ruby runtime = context.runtime; ThreadFiber rootFiber = new ThreadFiber(runtime, runtime.getClass("Fiber")); // FIXME: getFiber() assert runtime.getClass("SizedQueue") != null : "SizedQueue has not been loaded"; rootFiber.data = new FiberData(new SizedQueue(runtime, runtime.getClass("SizedQueue")), null, rootFiber); rootFiber.thread = context.getThread(); context.setRootFiber(rootFiber); }
public static void initRootFiber(ThreadContext context) { Ruby runtime = context.runtime; ThreadFiber rootFiber = new ThreadFiber(runtime, runtime.getClass("Fiber")); // FIXME: getFiber() assert runtime.getClass("SizedQueue") != null : "SizedQueue has not been loaded"; rootFiber.data = new FiberData(new SizedQueue(runtime, runtime.getClass("SizedQueue")), null, rootFiber); rootFiber.thread = context.getThread(); context.setRootFiber(rootFiber); }