@JRubyMethod(name = "pass", meta = true) public static IRubyObject pass(IRubyObject recv) { Ruby runtime = recv.getRuntime(); ThreadService ts = runtime.getThreadService(); boolean critical = ts.getCritical(); ts.setCritical(false); Thread.yield(); ts.setCritical(critical); return recv.getRuntime().getNil(); }
@JRubyMethod(name = "pass", meta = true) public static IRubyObject pass(IRubyObject recv) { Ruby runtime = recv.getRuntime(); ThreadService ts = runtime.getThreadService(); boolean critical = ts.getCritical(); ts.setCritical(false); Thread.yield(); ts.setCritical(critical); return recv.getRuntime().getNil(); }
@JRubyMethod(name = "critical", meta = true, compat = CompatVersion.RUBY1_8) public static IRubyObject critical(IRubyObject receiver) { return receiver.getRuntime().newBoolean(receiver.getRuntime().getThreadService().getCritical()); }
@JRubyMethod(name = "critical", meta = true, compat = CompatVersion.RUBY1_8) public static IRubyObject critical(IRubyObject receiver) { return receiver.getRuntime().newBoolean(receiver.getRuntime().getThreadService().getCritical()); }
@JRubyMethod(name = "exclusive", meta = true, compat = CompatVersion.RUBY1_8) public static IRubyObject exclusive(ThreadContext context, IRubyObject receiver, Block block) { ThreadService service = context.runtime.getThreadService(); boolean old = service.getCritical(); try { service.setCritical(true); return block.yield(receiver.getRuntime().getCurrentContext(), (IRubyObject) null); } finally { service.setCritical(old); } }
@JRubyMethod(name = "exclusive", meta = true, compat = CompatVersion.RUBY1_8) public static IRubyObject exclusive(ThreadContext context, IRubyObject receiver, Block block) { ThreadService service = context.runtime.getThreadService(); boolean old = service.getCritical(); try { service.setCritical(true); return block.yield(receiver.getRuntime().getCurrentContext(), (IRubyObject) null); } finally { service.setCritical(old); } }
if (runtime.getThreadService().getCritical()) { return raiseBecauseCritical(context);
if (runtime.getThreadService().getCritical()) { return raiseBecauseCritical(context);
if (runtime.getThreadService().getCritical()) {
if (runtime.getThreadService().getCritical()) {
if (runtime.getThreadService().getCritical()) { return raiseBecauseCritical(context);
if (runtime.getThreadService().getCritical()) { return raiseBecauseCritical(context);