@Override public void run() { javaThread = Thread.currentThread(); RubyThread rubyThread; // spin a bit until this happens; should almost never spin while ((rubyThread = waitThread[0]) == null) { Thread.yield(); } ThreadContext context = runtime.getThreadService().registerNewThread(rubyThread); rubyThread.op_aset( runtime.newSymbol("pid"), runtime.newFixnum(pid)); try { int exitValue = tuple.process.waitFor(); RubyProcess.RubyStatus status = RubyProcess.RubyStatus.newProcessStatus( runtime, exitValue, pid); rubyThread.cleanTerminate(status); } catch (Throwable t) { rubyThread.exceptionRaised(t); } finally { rubyThread.dispose(); } }
@Override public void run() { javaThread = Thread.currentThread(); RubyThread rubyThread; // spin a bit until this happens; should almost never spin while ((rubyThread = waitThread[0]) == null) { Thread.yield(); } ThreadContext context = runtime.getThreadService().registerNewThread(rubyThread); rubyThread.op_aset( runtime.newSymbol("pid"), runtime.newFixnum(pid)); try { int exitValue = tuple.process.waitFor(); RubyProcess.RubyStatus status = RubyProcess.RubyStatus.newProcessStatus( runtime, exitValue, pid); rubyThread.cleanTerminate(status); } catch (Throwable t) { rubyThread.exceptionRaised(t); } finally { rubyThread.dispose(); } }
private static RubyThread adoptThread(final Ruby runtime, final ThreadService service, final RubyClass recv, final Thread thread) { final RubyThread rubyThread = new RubyThread(runtime, recv); rubyThread.threadImpl = new NativeThread(rubyThread, thread); ThreadContext context = service.registerNewThread(rubyThread); service.associateThread(thread, rubyThread); context.preAdoptThread(); // set to default thread group runtime.getDefaultThreadGroup().addDirectly(rubyThread); return rubyThread; }
private static RubyThread adoptThread(final Ruby runtime, final ThreadService service, final RubyClass recv, final Thread thread) { final RubyThread rubyThread = new RubyThread(runtime, recv); rubyThread.threadImpl = new NativeThread(rubyThread, thread); ThreadContext context = service.registerNewThread(rubyThread); service.associateThread(thread, rubyThread); context.preAdoptThread(); // set to default thread group runtime.getDefaultThreadGroup().addDirectly(rubyThread); return rubyThread; }
private static RubyThread adoptThread(final IRubyObject recv, Thread t, Block block) { final Ruby runtime = recv.getRuntime(); final RubyThread rubyThread = new RubyThread(runtime, (RubyClass) recv); rubyThread.threadImpl = new NativeThread(rubyThread, t); ThreadContext context = runtime.getThreadService().registerNewThread(rubyThread); runtime.getThreadService().associateThread(t, rubyThread); context.preAdoptThread(); // set to default thread group runtime.getDefaultThreadGroup().addDirectly(rubyThread); return rubyThread; }
private static RubyThread adoptThread(final IRubyObject recv, Thread t, Block block) { final Ruby runtime = recv.getRuntime(); final RubyThread rubyThread = new RubyThread(runtime, (RubyClass) recv); rubyThread.threadImpl = new NativeThread(rubyThread, t); ThreadContext context = runtime.getThreadService().registerNewThread(rubyThread); runtime.getThreadService().associateThread(t, rubyThread); context.preAdoptThread(); // set to default thread group runtime.getDefaultThreadGroup().addDirectly(rubyThread); return rubyThread; }
@Override public void run() { javaThread = Thread.currentThread(); ThreadContext context = runtime.getThreadService().registerNewThread(rubyThread);
@Override public void run() { javaThread = Thread.currentThread(); ThreadContext context = runtime.getThreadService().registerNewThread(rubyThread);
@Override public void run() { javaThread = Thread.currentThread(); ThreadContext context = runtime.getThreadService().registerNewThread(rubyThread);
@Override public void run() { javaThread = Thread.currentThread(); ThreadContext context = runtime.getThreadService().registerNewThread(rubyThread);