public class org.jruby.RubyThread extends org.jruby.RubyObject implements org.jruby.runtime.ExecutionContext
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.RubyThread
super_class: org.jruby.RubyObject
{
private static final org.jruby.util.log.Logger LOG;
descriptor: Lorg/jruby/util/log/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.headius.backport9.stack.StackWalker WALKER;
descriptor: Lcom/headius/backport9/stack/StackWalker;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private volatile org.jruby.internal.runtime.ThreadLike threadImpl;
descriptor: Lorg/jruby/internal/runtime/ThreadLike;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile transient java.util.Map<org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject> fiberLocalVariables;
descriptor: Ljava/util/Map;
flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT
Signature: Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
private volatile transient java.util.Map<org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject> threadLocalVariables;
descriptor: Ljava/util/Map;
flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT
Signature: Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
private final java.util.Map<java.lang.Object, org.jruby.runtime.builtin.IRubyObject> contextVariables;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;>;
private volatile boolean abortOnException;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile org.jruby.runtime.builtin.IRubyObject reportOnException;
descriptor: Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile org.jruby.runtime.builtin.IRubyObject finalResult;
descriptor: Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private java.lang.String file;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private int line;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private volatile java.lang.Throwable exitingException;
descriptor: Ljava/lang/Throwable;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile org.jruby.RubyThreadGroup threadGroup;
descriptor: Lorg/jruby/RubyThreadGroup;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile org.jruby.runtime.builtin.IRubyObject errorInfo;
descriptor: Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.lang.ref.WeakReference<org.jruby.runtime.ThreadContext> contextRef;
descriptor: Ljava/lang/ref/WeakReference;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/lang/ref/WeakReference<Lorg/jruby/runtime/ThreadContext;>;
private final java.util.Vector<org.jruby.RubyHash> interruptMaskStack;
descriptor: Ljava/util/Vector;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Vector<Lorg/jruby/RubyHash;>;
private final org.jruby.RubyThread$SleepTask2 sleepTask;
descriptor: Lorg/jruby/RubyThread$SleepTask2;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public static final int RUBY_MIN_THREAD_PRIORITY;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -3
public static final int RUBY_MAX_THREAD_PRIORITY;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private final java.util.concurrent.atomic.AtomicReference<org.jruby.RubyThread$Status> status;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/jruby/RubyThread$Status;>;
private final java.util.Queue<org.jruby.runtime.builtin.IRubyObject> pendingInterruptQueue;
descriptor: Ljava/util/Queue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Queue<Lorg/jruby/runtime/builtin/IRubyObject;>;
private volatile org.jruby.RubyThread$Unblocker unblockFunc;
descriptor: Lorg/jruby/RubyThread$Unblocker;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.lang.Object unblockArg;
descriptor: Ljava/lang/Object;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.List<java.util.concurrent.locks.Lock> heldLocks;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/util/concurrent/locks/Lock;>;
private volatile boolean disposed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int interruptFlag;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int interruptMask;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean pendingInterruptQueueChecked;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.nio.channels.Selector currentSelector;
descriptor: Ljava/nio/channels/Selector;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile org.jruby.RubyThread fiberCurrentThread;
descriptor: Lorg/jruby/RubyThread;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.jruby.RubyThread> INTERRUPT_FLAG_UPDATER;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/jruby/RubyThread;>;
private static final int TIMER_INTERRUPT_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int PENDING_INTERRUPT_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int POSTPONED_JOB_INTERRUPT_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int TRAP_INTERRUPT_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int INTERRUPT_NONE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int INTERRUPT_IMMEDIATE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int INTERRUPT_ON_BLOCKING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int INTERRUPT_NEVER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final org.jruby.RubyHash[] NULL_ARRAY;
descriptor: [Lorg/jruby/RubyHash;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String RUBY_THREAD_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "Ruby-"
private static final org.jruby.RubyHash$VisitorWithState HandleInterruptVisitor;
descriptor: Lorg/jruby/RubyHash$VisitorWithState;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private volatile org.jruby.util.io.BlockingIO$Condition blockingIO;
descriptor: Lorg/jruby/util/io/BlockingIO$Condition;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.lang.String MUTEX_FOR_THREAD_EXCLUSIVE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "MUTEX_FOR_THREAD_EXCLUSIVE"
private volatile org.jruby.RubyThread$BlockingTask currentBlockingTask;
descriptor: Lorg/jruby/RubyThread$BlockingTask;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
java.lang.Deprecated()
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$java$lang$Thread$State;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/jruby/RubyThread;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.jruby.RubyThread.$assertionsDisabled:Z
3: ldc Lorg/jruby/RubyThread;
invokestatic org.jruby.util.log.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/jruby/util/log/Logger;
putstatic org.jruby.RubyThread.LOG:Lorg/jruby/util/log/Logger;
4: getstatic org.jruby.runtime.ThreadContext.WALKER:Lcom/headius/backport9/stack/StackWalker;
putstatic org.jruby.RubyThread.WALKER:Lcom/headius/backport9/stack/StackWalker;
5: ldc Lorg/jruby/RubyThread;
ldc "interruptFlag"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
6: putstatic org.jruby.RubyThread.INTERRUPT_FLAG_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
7: iconst_0
anewarray org.jruby.RubyHash
putstatic org.jruby.RubyThread.NULL_ARRAY:[Lorg/jruby/RubyHash;
8: new org.jruby.RubyThread$1
dup
invokespecial org.jruby.RubyThread$1.<init>:()V
putstatic org.jruby.RubyThread.HandleInterruptVisitor:Lorg/jruby/RubyHash$VisitorWithState;
9: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.jruby.Ruby, org.jruby.RubyClass);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: aload 0
getstatic org.jruby.internal.runtime.ThreadLike.DUMMY:Lorg/jruby/internal/runtime/ThreadLike;
putfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
2: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield org.jruby.RubyThread.contextVariables:Ljava/util/Map;
3: aload 0
new java.util.Vector
dup
iconst_4
invokespecial java.util.Vector.<init>:(I)V
putfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
4: aload 0
new org.jruby.RubyThread$SleepTask2
dup
invokespecial org.jruby.RubyThread$SleepTask2.<init>:()V
putfield org.jruby.RubyThread.sleepTask:Lorg/jruby/RubyThread$SleepTask2;
5: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
getstatic org.jruby.RubyThread$Status.RUN:Lorg/jruby/RubyThread$Status;
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
6: aload 0
new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
putfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
7: aload 0
new java.util.Vector
dup
invokespecial java.util.Vector.<init>:()V
putfield org.jruby.RubyThread.heldLocks:Ljava/util/List;
8: aload 0
iconst_0
putfield org.jruby.RubyThread.disposed:Z
9: aload 0
iconst_0
putfield org.jruby.RubyThread.interruptFlag:I
10: aload 0
iconst_0
putfield org.jruby.RubyThread.pendingInterruptQueueChecked:Z
11: aload 0
aconst_null
putfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
12: aload 0
aload 0
aload 1
invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
dup_x1
putfield org.jruby.RubyThread.errorInfo:Lorg/jruby/runtime/builtin/IRubyObject;
putfield org.jruby.RubyThread.finalResult:Lorg/jruby/runtime/builtin/IRubyObject;
13: aload 0
aload 1
invokevirtual org.jruby.Ruby.getReportOnException:()Lorg/jruby/runtime/builtin/IRubyObject;
putfield org.jruby.RubyThread.reportOnException:Lorg/jruby/runtime/builtin/IRubyObject;
14: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/jruby/RubyThread;
0 15 1 runtime Lorg/jruby/Ruby;
0 15 2 type Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
type
public void <init>(org.jruby.Ruby, org.jruby.RubyClass, java.lang.Runnable);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Runnable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
invokespecial org.jruby.RubyThread.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: aload 0
aload 1
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 3
invokevirtual org.jruby.RubyThread.startThread:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Runnable;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
0 3 1 runtime Lorg/jruby/Ruby;
0 3 2 klass Lorg/jruby/RubyClass;
0 3 3 runnable Ljava/lang/Runnable;
MethodParameters:
Name Flags
runtime
klass
runnable
private void executeInterrupts(org.jruby.runtime.ThreadContext, boolean);
descriptor: (Lorg/jruby/runtime/ThreadContext;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 1: goto 23
start local 4 2: StackMap locals: org.jruby.Ruby int
StackMap stack:
iload 4
iconst_2
iand
iconst_2
if_icmpne 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 5
start local 5 5: iload 5
ifeq 23
aload 0
invokevirtual org.jruby.RubyThread.pendingInterruptActive:()Z
ifeq 23
6: aload 0
aload 1
iload 2
ifeq 7
iconst_2
goto 8
StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext int org.jruby.Ruby int int
StackMap stack: org.jruby.RubyThread org.jruby.runtime.ThreadContext
7: iconst_0
StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext int org.jruby.Ruby int int
StackMap stack: org.jruby.RubyThread org.jruby.runtime.ThreadContext int
8: invokevirtual org.jruby.RubyThread.pendingInterruptDeque:(Lorg/jruby/runtime/ThreadContext;I)Lorg/jruby/runtime/builtin/IRubyObject;
astore 6
start local 6 9: aload 6
getstatic org.jruby.RubyThread.UNDEF:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpeq 23
10: aload 6
instanceof org.jruby.RubyFixnum
ifeq 15
aload 6
checkcast org.jruby.RubyFixnum
invokevirtual org.jruby.RubyFixnum.getLongValue:()J
lconst_0
lcmp
ifeq 13
11: aload 6
checkcast org.jruby.RubyFixnum
invokevirtual org.jruby.RubyFixnum.getLongValue:()J
lconst_1
lcmp
ifeq 13
12: aload 6
checkcast org.jruby.RubyFixnum
invokevirtual org.jruby.RubyFixnum.getLongValue:()J
ldc 2
lcmp
ifne 15
13: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.toKill:()V
14: goto 23
15: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.afterBlockingCall:()V
16: aload 0
invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
getstatic org.jruby.RubyThread$Status.SLEEP:Lorg/jruby/RubyThread$Status;
if_acmpne 18
17: aload 0
invokevirtual org.jruby.RubyThread.exitSleep:()V
18: StackMap locals:
StackMap stack:
aload 6
instanceof org.jruby.RubyException
ifeq 21
19: aload 6
iconst_1
anewarray org.jruby.runtime.builtin.IRubyObject
dup
iconst_0
aload 3
ldc "cause"
aload 6
checkcast org.jruby.RubyException
aload 1
invokevirtual org.jruby.RubyException.cause:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
invokestatic org.jruby.RubyHash.newKwargs:(Lorg/jruby/Ruby;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyHash;
aastore
invokestatic org.jruby.runtime.Helpers.arrayOf:(Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)[Lorg/jruby/runtime/builtin/IRubyObject;
astore 7
start local 7 20: goto 22
end local 7 21: StackMap locals:
StackMap stack:
aload 6
iconst_0
anewarray org.jruby.runtime.builtin.IRubyObject
invokestatic org.jruby.runtime.Helpers.arrayOf:(Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)[Lorg/jruby/runtime/builtin/IRubyObject;
astore 7
start local 7 22: StackMap locals: org.jruby.runtime.builtin.IRubyObject[]
StackMap stack:
aload 1
aload 0
aload 7
getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
invokestatic org.jruby.RubyKernel.raise:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
end local 7 end local 6 end local 5 end local 4 23: StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext int org.jruby.Ruby
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.getInterrupts:()I
dup
istore 4
start local 4 24: ifne 2
25: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/jruby/RubyThread;
0 26 1 context Lorg/jruby/runtime/ThreadContext;
0 26 2 blockingTiming Z
1 26 3 runtime Lorg/jruby/Ruby;
2 23 4 interrupt I
24 26 4 interrupt I
5 23 5 pendingInterrupt Z
9 23 6 err Lorg/jruby/runtime/builtin/IRubyObject;
20 21 7 args [Lorg/jruby/runtime/builtin/IRubyObject;
22 23 7 args [Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
blockingTiming
private void postponedJobFlush(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
MethodParameters:
Name Flags
context
private boolean pendingInterruptActive();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.pendingInterruptQueueChecked:Z
ifeq 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.isEmpty:()Z
ifeq 2
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
private void toKill();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.pendingInterruptClear:()V
1: aload 0
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
getstatic org.jruby.RubyThread$Status.ABORTING:Lorg/jruby/RubyThread$Status;
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
2: invokestatic org.jruby.RubyThread.throwThreadKill:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/RubyThread;
private void pendingInterruptClear();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.clear:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
private int getInterrupts();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.interruptFlag:I
istore 1
start local 1 1: getstatic org.jruby.RubyThread.INTERRUPT_FLAG_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 1
iload 1
aload 0
getfield org.jruby.RubyThread.interruptMask:I
iand
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 0
2: iload 1
aload 0
getfield org.jruby.RubyThread.interruptMask:I
iconst_m1
ixor
iand
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
1 3 1 interrupt I
private org.jruby.runtime.builtin.IRubyObject pendingInterruptDeque(org.jruby.runtime.ThreadContext, int);
descriptor: (Lorg/jruby/runtime/ThreadContext;I)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
astore 3
start local 3 1: goto 8
2: StackMap locals: java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
astore 4
start local 4 3: aload 0
aload 1
aload 4
invokevirtual org.jruby.RubyThread.pendingInterruptCheckMask:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
istore 5
start local 5 4: iload 5
tableswitch { // 0 - 3
0: 6
1: 6
2: 5
3: 8
default: 8
}
5: StackMap locals: org.jruby.runtime.builtin.IRubyObject int
StackMap stack:
iload 2
iconst_2
if_icmpeq 6
goto 8
6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.remove:()V
7: aload 4
areturn
end local 5 end local 4 8: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
end local 3 9: aload 0
iconst_1
putfield org.jruby.RubyThread.pendingInterruptQueueChecked:Z
10: getstatic org.jruby.RubyThread.UNDEF:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/RubyThread;
0 11 1 context Lorg/jruby/runtime/ThreadContext;
0 11 2 timing I
1 9 3 iterator Ljava/util/Iterator<Lorg/jruby/runtime/builtin/IRubyObject;>;
3 8 4 err Lorg/jruby/runtime/builtin/IRubyObject;
4 8 5 maskTiming I
MethodParameters:
Name Flags
context
timing
private int pendingInterruptCheckMask(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
istore 3
start local 3 1: iload 3
ifne 2
iconst_0
ireturn
2: StackMap locals: int
StackMap stack:
aload 2
invokestatic org.jruby.RubyThread.getMetaClass:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyClass;
invokevirtual org.jruby.RubyClass.getAncestorList:()Ljava/util/List;
astore 4
start local 4 3: aload 4
invokeinterface java.util.List.size:()I
istore 5
start local 5 4: goto 14
5: StackMap locals: java.util.List int
StackMap stack:
aload 0
getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
iload 3
invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
checkcast org.jruby.RubyHash
astore 6
start local 6 6: iconst_0
istore 7
start local 7 7: goto 13
8: StackMap locals: org.jruby.RubyHash int
StackMap stack:
aload 4
iload 7
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
astore 8
start local 8 9: aload 6
aload 1
aload 8
invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
dup
astore 9
start local 9 10: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifne 12
11: aload 1
aload 9
invokestatic org.jruby.RubyThread.checkInterruptMask:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
ireturn
end local 9 end local 8 12: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
13: iload 7
iload 5
if_icmplt 8
end local 7 end local 6 14: StackMap locals:
StackMap stack:
iinc 3 -1
iload 3
ifge 5
15: iconst_0
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/jruby/RubyThread;
0 16 1 context Lorg/jruby/runtime/ThreadContext;
0 16 2 err Lorg/jruby/runtime/builtin/IRubyObject;
1 16 3 idx I
3 16 4 ancestors Ljava/util/List<Lorg/jruby/runtime/builtin/IRubyObject;>;
4 16 5 ancestorsLen I
6 14 6 mask Lorg/jruby/RubyHash;
7 14 7 j I
9 12 8 klass Lorg/jruby/runtime/builtin/IRubyObject;
10 12 9 sym Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
err
public org.jruby.runtime.builtin.IRubyObject getErrorInfo();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.errorInfo:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
public org.jruby.runtime.builtin.IRubyObject setErrorInfo(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.jruby.RubyThread.errorInfo:Lorg/jruby/runtime/builtin/IRubyObject;
1: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
0 2 1 errorInfo Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
errorInfo
public void setContext(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.lang.ref.WeakReference
dup
aload 1
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield org.jruby.RubyThread.contextRef:Ljava/lang/ref/WeakReference;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
0 2 1 context Lorg/jruby/runtime/ThreadContext;
MethodParameters:
Name Flags
context final
public void clearContext();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.contextRef:Ljava/lang/ref/WeakReference;
astore 1
start local 1 1: aload 1
ifnull 4
2: aload 1
invokevirtual java.lang.ref.WeakReference.clear:()V
3: aload 0
aconst_null
putfield org.jruby.RubyThread.contextRef:Ljava/lang/ref/WeakReference;
4: StackMap locals: java.lang.ref.WeakReference
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/RubyThread;
1 5 1 contextRef Ljava/lang/ref/WeakReference<Lorg/jruby/runtime/ThreadContext;>;
public org.jruby.runtime.ThreadContext getContext();
descriptor: ()Lorg/jruby/runtime/ThreadContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.contextRef:Ljava/lang/ref/WeakReference;
astore 1
start local 1 1: aload 1
ifnonnull 2
aconst_null
goto 3
StackMap locals: java.lang.ref.WeakReference
StackMap stack:
2: aload 1
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast org.jruby.runtime.ThreadContext
StackMap locals:
StackMap stack: org.jruby.runtime.ThreadContext
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/RubyThread;
1 4 1 contextRef Ljava/lang/ref/WeakReference<Lorg/jruby/runtime/ThreadContext;>;
public java.lang.Thread getNativeThread();
descriptor: ()Ljava/lang/Thread;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.nativeThread:()Ljava/lang/Thread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
public void setFiberCurrentThread(org.jruby.RubyThread);
descriptor: (Lorg/jruby/RubyThread;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.jruby.RubyThread.fiberCurrentThread:Lorg/jruby/RubyThread;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
0 2 1 fiberCurrentThread Lorg/jruby/RubyThread;
MethodParameters:
Name Flags
fiberCurrentThread
public org.jruby.RubyThread getFiberCurrentThread();
descriptor: ()Lorg/jruby/RubyThread;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.fiberCurrentThread:Lorg/jruby/RubyThread;
astore 1
start local 1 1: aload 1
ifnonnull 2
aload 0
goto 3
StackMap locals: org.jruby.RubyThread
StackMap stack:
2: aload 1
StackMap locals:
StackMap stack: org.jruby.RubyThread
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/RubyThread;
1 4 1 fiberCurrentThread Lorg/jruby/RubyThread;
public void beforeStart();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.disposed:Z
ifeq 1
return
1: StackMap locals:
StackMap stack:
aload 0
dup
astore 1
monitorenter
2: aload 0
getfield org.jruby.RubyThread.disposed:Z
ifeq 4
aload 1
monitorexit
3: return
4: StackMap locals: org.jruby.RubyThread
StackMap stack:
aload 0
iconst_1
putfield org.jruby.RubyThread.disposed:Z
5: aload 0
getfield org.jruby.RubyThread.threadGroup:Lorg/jruby/RubyThreadGroup;
aload 0
invokevirtual org.jruby.RubyThreadGroup.remove:(Lorg/jruby/RubyThread;)V
6: aload 0
invokevirtual org.jruby.RubyThread.unlockAll:()V
7: aload 0
invokevirtual org.jruby.RubyThread.beDead:()V
8: aload 1
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 1
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
aload 0
invokevirtual org.jruby.internal.runtime.ThreadService.unregisterThread:(Lorg/jruby/RubyThread;)V
13: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/jruby/RubyThread;
Exception table:
from to target type
2 3 10 any
4 9 10 any
10 11 10 any
public static org.jruby.RubyClass createThreadClass(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyClass;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
ldc "Thread"
aload 0
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
getstatic org.jruby.runtime.ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.Ruby.defineClass:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 1
start local 1 1: aload 1
getstatic org.jruby.runtime.ClassIndex.THREAD:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.RubyClass.setClassIndex:(Lorg/jruby/runtime/ClassIndex;)V
2: aload 1
ldc Lorg/jruby/RubyThread;
invokevirtual org.jruby.RubyClass.setReifiedClass:(Ljava/lang/Class;)V
3: aload 1
ldc Lorg/jruby/RubyThread;
invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
4: new org.jruby.RubyThread
dup
aload 0
aload 1
invokespecial org.jruby.RubyThread.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
astore 2
start local 2 5: aload 2
new org.jruby.internal.runtime.NativeThread
dup
aload 2
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokespecial org.jruby.internal.runtime.NativeThread.<init>:(Lorg/jruby/RubyThread;Ljava/lang/Thread;)V
putfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
6: aload 0
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 2
invokevirtual org.jruby.internal.runtime.ThreadService.setMainThread:(Ljava/lang/Thread;Lorg/jruby/RubyThread;)V
7: aload 0
invokevirtual org.jruby.Ruby.getDefaultThreadGroup:()Lorg/jruby/RubyThreadGroup;
aload 2
invokevirtual org.jruby.RubyThreadGroup.addDirectly:(Lorg/jruby/RubyThread;)V
8: aload 1
getstatic org.jruby.runtime.ObjectMarshal.NOT_MARSHALABLE_MARSHAL:Lorg/jruby/runtime/ObjectMarshal;
invokevirtual org.jruby.RubyClass.setMarshal:(Lorg/jruby/runtime/ObjectMarshal;)V
9: aload 1
ldc "Backtrace"
aload 0
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
getstatic org.jruby.runtime.ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.RubyClass.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 3
start local 3 10: aload 3
ldc "Location"
aload 0
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
getstatic org.jruby.runtime.ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.RubyClass.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 4
start local 4 11: aload 4
ldc Lorg/jruby/RubyThread$Location;
invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
12: aload 0
aload 4
invokevirtual org.jruby.Ruby.setLocation:(Lorg/jruby/RubyClass;)V
13: aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 runtime Lorg/jruby/Ruby;
1 14 1 threadClass Lorg/jruby/RubyClass;
5 14 2 rubyThread Lorg/jruby/RubyThread;
10 14 3 backtrace Lorg/jruby/RubyClass;
11 14 4 location Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
public static org.jruby.runtime.builtin.IRubyObject newInstance(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iconst_1
aload 2
invokestatic org.jruby.RubyThread.startThread:(Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;ZLorg/jruby/runtime/Block;)Lorg/jruby/RubyThread;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 1 1 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"new", "fork"}, rest = true, meta = true)
MethodParameters:
Name Flags
recv
args
block
public static org.jruby.RubyThread start(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/RubyThread;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.jruby.runtime.Block.isGiven:()Z
ifne 2
1: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
ldc "tried to create Proc object without a block"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
aload 2
invokestatic org.jruby.RubyThread.startThread:(Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;ZLorg/jruby/runtime/Block;)Lorg/jruby/RubyThread;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 3 1 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 3 2 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(rest = true, name = {"start"}, meta = true)
MethodParameters:
Name Flags
recv
args
block
public static org.jruby.RubyThread start19(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/RubyThread;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic org.jruby.RubyThread.start:(Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/RubyThread;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 1 1 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
recv
args
block
public static org.jruby.RubyThread adopt(org.jruby.runtime.builtin.IRubyObject, java.lang.Thread);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/Thread;)Lorg/jruby/RubyThread;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
astore 2
start local 2 1: aload 2
aload 2
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
aload 0
checkcast org.jruby.RubyClass
aload 1
invokestatic org.jruby.RubyThread.adoptThread:(Lorg/jruby/Ruby;Lorg/jruby/internal/runtime/ThreadService;Lorg/jruby/RubyClass;Ljava/lang/Thread;)Lorg/jruby/RubyThread;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 2 1 t Ljava/lang/Thread;
1 2 2 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
recv
t
public static org.jruby.RubyThread adopt(org.jruby.Ruby, org.jruby.internal.runtime.ThreadService, java.lang.Thread);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/internal/runtime/ThreadService;Ljava/lang/Thread;)Lorg/jruby/RubyThread;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 0
invokevirtual org.jruby.Ruby.getThread:()Lorg/jruby/RubyClass;
aload 2
invokestatic org.jruby.RubyThread.adoptThread:(Lorg/jruby/Ruby;Lorg/jruby/internal/runtime/ThreadService;Lorg/jruby/RubyClass;Ljava/lang/Thread;)Lorg/jruby/RubyThread;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 service Lorg/jruby/internal/runtime/ThreadService;
0 1 2 thread Ljava/lang/Thread;
MethodParameters:
Name Flags
runtime
service
thread
private static org.jruby.RubyThread adoptThread(org.jruby.Ruby, org.jruby.internal.runtime.ThreadService, org.jruby.RubyClass, java.lang.Thread);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/internal/runtime/ThreadService;Lorg/jruby/RubyClass;Ljava/lang/Thread;)Lorg/jruby/RubyThread;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.jruby.RubyThread
dup
aload 0
aload 2
invokespecial org.jruby.RubyThread.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
astore 4
start local 4 1: aload 4
new org.jruby.internal.runtime.NativeThread
dup
aload 4
aload 3
invokespecial org.jruby.internal.runtime.NativeThread.<init>:(Lorg/jruby/RubyThread;Ljava/lang/Thread;)V
putfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
2: aload 1
aload 4
invokevirtual org.jruby.internal.runtime.ThreadService.registerNewThread:(Lorg/jruby/RubyThread;)Lorg/jruby/runtime/ThreadContext;
astore 5
start local 5 3: aload 1
aload 3
aload 4
invokevirtual org.jruby.internal.runtime.ThreadService.associateThread:(Ljava/lang/Thread;Lorg/jruby/RubyThread;)V
4: aload 5
invokevirtual org.jruby.runtime.ThreadContext.preAdoptThread:()V
5: aload 0
invokevirtual org.jruby.Ruby.getDefaultThreadGroup:()Lorg/jruby/RubyThreadGroup;
aload 4
invokevirtual org.jruby.RubyThreadGroup.addDirectly:(Lorg/jruby/RubyThread;)V
6: aload 4
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 runtime Lorg/jruby/Ruby;
0 7 1 service Lorg/jruby/internal/runtime/ThreadService;
0 7 2 recv Lorg/jruby/RubyClass;
0 7 3 thread Ljava/lang/Thread;
1 7 4 rubyThread Lorg/jruby/RubyThread;
3 7 5 context Lorg/jruby/runtime/ThreadContext;
MethodParameters:
Name Flags
runtime final
service final
recv final
thread final
public org.jruby.runtime.builtin.IRubyObject initialize(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokevirtual org.jruby.runtime.Block.isGiven:()Z
ifne 1
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "must be called with a block"
invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
getstatic org.jruby.internal.runtime.ThreadLike.DUMMY:Lorg/jruby/internal/runtime/ThreadLike;
if_acmpeq 2
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "already initialized thread"
invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
new org.jruby.internal.runtime.RubyRunnable
dup
aload 0
aload 2
aload 3
invokespecial org.jruby.internal.runtime.RubyRunnable.<init>:(Lorg/jruby/RubyThread;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)V
invokevirtual org.jruby.RubyThread.startThread:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Runnable;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
0 3 1 context Lorg/jruby/runtime/ThreadContext;
0 3 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 3 3 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(rest = true, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
MethodParameters:
Name Flags
context
args
block
private org.jruby.runtime.builtin.IRubyObject startThread(org.jruby.runtime.ThreadContext, java.lang.Runnable);
descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/lang/Runnable;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 1: new java.lang.Thread
dup
aload 2
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
astore 4
start local 4 2: aload 4
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
3: aload 0
aload 1
invokevirtual org.jruby.runtime.ThreadContext.getFile:()Ljava/lang/String;
putfield org.jruby.RubyThread.file:Ljava/lang/String;
4: aload 0
aload 1
invokevirtual org.jruby.runtime.ThreadContext.getLine:()I
putfield org.jruby.RubyThread.line:I
5: aload 3
aload 4
aload 0
getfield org.jruby.RubyThread.file:Ljava/lang/String;
aload 0
getfield org.jruby.RubyThread.line:I
invokestatic org.jruby.RubyThread.initThreadName:(Lorg/jruby/Ruby;Ljava/lang/Thread;Ljava/lang/String;I)V
6: aload 0
new org.jruby.internal.runtime.NativeThread
dup
aload 0
aload 4
invokespecial org.jruby.internal.runtime.NativeThread.<init>:(Lorg/jruby/RubyThread;Ljava/lang/Thread;)V
putfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
7: aload 0
aload 1
invokevirtual org.jruby.RubyThread.addToCorrectThreadGroup:(Lorg/jruby/runtime/ThreadContext;)V
8: aload 3
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
aload 4
aload 0
invokevirtual org.jruby.internal.runtime.ThreadService.associateThread:(Ljava/lang/Thread;Lorg/jruby/RubyThread;)V
9: aload 1
aload 1
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
aload 0
getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
invokestatic org.jruby.RubyThread.copyInterrupts:(Lorg/jruby/runtime/ThreadContext;Ljava/util/Vector;Ljava/util/Vector;)V
10: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.start:()V
11: invokestatic java.lang.Thread.yield:()V
12: aload 0
13: areturn
end local 4 14: StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext java.lang.Runnable org.jruby.Ruby
StackMap stack: java.lang.OutOfMemoryError
astore 4
start local 4 15: ldc "unable to create new native thread"
aload 4
invokevirtual java.lang.OutOfMemoryError.getMessage:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
16: aload 3
aload 4
invokevirtual java.lang.OutOfMemoryError.getMessage:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
17: StackMap locals: java.lang.OutOfMemoryError
StackMap stack:
aload 4
athrow
end local 4 18: StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext java.lang.Runnable org.jruby.Ruby
StackMap stack: java.lang.SecurityException
astore 4
start local 4 19: aload 3
aload 4
invokevirtual java.lang.SecurityException.getMessage:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/jruby/RubyThread;
0 20 1 context Lorg/jruby/runtime/ThreadContext;
0 20 2 runnable Ljava/lang/Runnable;
1 20 3 runtime Lorg/jruby/Ruby;
2 14 4 thread Ljava/lang/Thread;
15 18 4 oome Ljava/lang/OutOfMemoryError;
19 20 4 ex Ljava/lang/SecurityException;
Exception table:
from to target type
1 13 14 Class java.lang.OutOfMemoryError
1 13 18 Class java.lang.SecurityException
Exceptions:
throws org.jruby.exceptions.RaiseException, java.lang.OutOfMemoryError
MethodParameters:
Name Flags
context
runnable
private static void copyInterrupts(org.jruby.runtime.ThreadContext, java.util.Vector<org.jruby.RubyHash>, java.util.Vector<org.jruby.RubyHash>);
descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/util/Vector;Ljava/util/Vector;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getstatic org.jruby.RubyThread.NULL_ARRAY:[Lorg/jruby/RubyHash;
invokevirtual java.util.Vector.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.jruby.RubyHash[]
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 4
StackMap locals: org.jruby.runtime.ThreadContext java.util.Vector java.util.Vector top int int org.jruby.RubyHash[]
StackMap stack:
1: aload 6
iload 4
aaload
astore 3
start local 3 2: aload 2
aload 3
aload 0
invokevirtual org.jruby.RubyHash.dupFast:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyHash;
invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
pop
end local 3 3: iinc 4 1
StackMap locals:
StackMap stack:
4: iload 4
iload 5
if_icmplt 1
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 context Lorg/jruby/runtime/ThreadContext;
0 6 1 sourceStack Ljava/util/Vector<Lorg/jruby/RubyHash;>;
0 6 2 targetStack Ljava/util/Vector<Lorg/jruby/RubyHash;>;
2 3 3 h Lorg/jruby/RubyHash;
Signature: (Lorg/jruby/runtime/ThreadContext;Ljava/util/Vector<Lorg/jruby/RubyHash;>;Ljava/util/Vector<Lorg/jruby/RubyHash;>;)V
MethodParameters:
Name Flags
context
sourceStack
targetStack
private static void initThreadName(org.jruby.Ruby, java.lang.Thread, java.lang.String, int);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/Thread;Ljava/lang/String;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.StringBuilder
dup
bipush 24
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 5
start local 5 1: aload 5
2: ldc "Ruby-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: aload 0
invokevirtual org.jruby.Ruby.getRuntimeNumber:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
4: bipush 45
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
5: ldc "Thread-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: aload 0
invokestatic org.jruby.RubyThread.incAndGetThreadCount:(Lorg/jruby/Ruby;)J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
pop
7: aload 2
ifnull 14
8: aload 5
9: bipush 58
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
10: bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
11: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: bipush 58
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
13: iload 3
iconst_1
iadd
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
14: StackMap locals: org.jruby.Ruby java.lang.Thread java.lang.String int top java.lang.StringBuilder
StackMap stack:
aload 5
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 15: aload 1
aload 4
invokevirtual java.lang.Thread.setName:(Ljava/lang/String;)V
16: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 runtime Lorg/jruby/Ruby;
0 17 1 thread Ljava/lang/Thread;
0 17 2 file Ljava/lang/String;
0 17 3 line I
15 17 4 newName Ljava/lang/String;
1 17 5 name Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
runtime final
thread final
file final
line final
private static long incAndGetThreadCount(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
invokevirtual org.jruby.internal.runtime.ThreadService.incrementAndGetThreadCount:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime final
private static org.jruby.RubyThread startThread(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], boolean, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;ZLorg/jruby/runtime/Block;)Lorg/jruby/RubyThread;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
astore 4
start local 4 1: new org.jruby.RubyThread
dup
aload 4
aload 0
checkcast org.jruby.RubyClass
invokespecial org.jruby.RubyThread.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
astore 5
start local 5 2: iload 2
ifeq 6
3: aload 5
aload 1
aload 3
invokevirtual org.jruby.RubyThread.callInit:([Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)V
4: aload 5
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
getstatic org.jruby.internal.runtime.ThreadLike.DUMMY:Lorg/jruby/internal/runtime/ThreadLike;
if_acmpne 7
5: aload 4
aload 4
ldc "uninitialized thread - check "
aload 4
aload 0
checkcast org.jruby.RubyClass
invokestatic org.jruby.util.RubyStringBuilder.types:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyString;
ldc "#initialize"
invokestatic org.jruby.util.RubyStringBuilder.str:(Lorg/jruby/Ruby;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Ljava/lang/String;
invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
6: StackMap locals: org.jruby.Ruby org.jruby.RubyThread
StackMap stack:
aload 5
aload 4
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 1
aload 3
invokevirtual org.jruby.RubyThread.initialize:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
7: StackMap locals:
StackMap stack:
aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 8 1 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 8 2 callInit Z
0 8 3 block Lorg/jruby/runtime/Block;
1 8 4 runtime Lorg/jruby/Ruby;
2 8 5 rubyThread Lorg/jruby/RubyThread;
MethodParameters:
Name Flags
recv final
args final
callInit
block
protected static org.jruby.RubyThread startWaiterThread(org.jruby.Ruby, int, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/Ruby;ILorg/jruby/runtime/Block;)Lorg/jruby/RubyThread;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.Ruby.getProcess:()Lorg/jruby/RubyModule;
ldc "Waiter"
invokevirtual org.jruby.RubyModule.getConstantAt:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 3
start local 3 1: new org.jruby.RubyThread
dup
aload 0
aload 3
checkcast org.jruby.RubyClass
invokespecial org.jruby.RubyThread.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
astore 4
start local 4 2: aload 4
aload 0
ldc "pid"
invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
aload 0
iload 1
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
invokevirtual org.jruby.RubyThread.op_aset:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
3: aload 4
getstatic org.jruby.runtime.builtin.IRubyObject.NULL_ARRAY:[Lorg/jruby/runtime/builtin/IRubyObject;
aload 2
invokevirtual org.jruby.RubyThread.callInit:([Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)V
4: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 runtime Lorg/jruby/Ruby;
0 5 1 pid I
0 5 2 block Lorg/jruby/runtime/Block;
1 5 3 waiter Lorg/jruby/runtime/builtin/IRubyObject;
2 5 4 rubyThread Lorg/jruby/RubyThread;
MethodParameters:
Name Flags
runtime final
pid
block
public synchronized void cleanTerminate(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.jruby.RubyThread.finalResult:Lorg/jruby/runtime/builtin/IRubyObject;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
0 2 1 result Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
result
public void beDead();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
getstatic org.jruby.RubyThread$Status.DEAD:Lorg/jruby/RubyThread$Status;
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
public void pollThreadEvents();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.jruby.RubyThread.metaClass:Lorg/jruby/RubyClass;
getfield org.jruby.RubyClass.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
public void pollThreadEvents(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.RubyThread.anyInterrupted:()Z
ifeq 2
1: aload 0
aload 1
iconst_1
invokevirtual org.jruby.RubyThread.executeInterrupts:(Lorg/jruby/runtime/ThreadContext;Z)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
0 3 1 context Lorg/jruby/runtime/ThreadContext;
MethodParameters:
Name Flags
context
private boolean anyInterrupted();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: invokestatic java.lang.Thread.interrupted:()Z
ifne 1
aload 0
getfield org.jruby.RubyThread.interruptFlag:I
aload 0
getfield org.jruby.RubyThread.interruptMask:I
iconst_m1
ixor
iand
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
private static void throwThreadKill();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.jruby.exceptions.ThreadKill
dup
invokespecial org.jruby.exceptions.ThreadKill.<init>:()V
athrow
LocalVariableTable:
Start End Slot Name Signature
public static org.jruby.runtime.builtin.IRubyObject handle_interrupt(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokevirtual org.jruby.runtime.Block.isGiven:()Z
ifne 2
1: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "block is needed"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
2: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getHash:()Lorg/jruby/RubyClass;
ldc "to_hash"
invokestatic org.jruby.util.TypeConverter.convertToType:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyHash
astore 4
start local 4 3: aload 4
aload 0
getstatic org.jruby.RubyThread.HandleInterruptVisitor:Lorg/jruby/RubyHash$VisitorWithState;
aconst_null
invokevirtual org.jruby.RubyHash.visitAll:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash$VisitorWithState;Ljava/lang/Object;)V
4: aload 0
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
astore 5
start local 5 5: aload 5
getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
aload 4
invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
pop
6: aload 5
getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.isEmpty:()Z
ifeq 9
7: aload 5
iconst_0
putfield org.jruby.RubyThread.pendingInterruptQueueChecked:Z
8: aload 5
invokevirtual org.jruby.RubyThread.setInterrupt:()V
9: StackMap locals: org.jruby.RubyHash org.jruby.RubyThread
StackMap stack:
aload 5
invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
10: aload 3
aload 0
invokevirtual org.jruby.runtime.Block.call:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 7
11: aload 5
getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
aload 5
getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
iconst_1
isub
invokevirtual java.util.Vector.remove:(I)Ljava/lang/Object;
pop
12: aload 5
invokevirtual org.jruby.RubyThread.setInterrupt:()V
13: aload 5
aload 0
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
14: aload 7
areturn
15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
16: aload 5
getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
aload 5
getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
iconst_1
isub
invokevirtual java.util.Vector.remove:(I)Ljava/lang/Object;
pop
17: aload 5
invokevirtual org.jruby.RubyThread.setInterrupt:()V
18: aload 5
aload 0
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
19: aload 6
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 context Lorg/jruby/runtime/ThreadContext;
0 20 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 20 2 _mask Lorg/jruby/runtime/builtin/IRubyObject;
0 20 3 block Lorg/jruby/runtime/Block;
3 20 4 mask Lorg/jruby/RubyHash;
5 20 5 thread Lorg/jruby/RubyThread;
Exception table:
from to target type
9 11 15 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
self
_mask
block
private static int checkInterruptMask(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.jruby.RubySymbol
ifeq 8
1: aload 1
checkcast org.jruby.RubySymbol
invokevirtual org.jruby.RubySymbol.idString:()Ljava/lang/String;
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 3
104712844: 2
1124382641: 3
1686157973: 4
default: 8
}
StackMap locals: java.lang.String
StackMap stack:
2: aload 2
ldc "never"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
goto 8
StackMap locals:
StackMap stack:
3: aload 2
ldc "immediate"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
goto 8
StackMap locals:
StackMap stack:
4: aload 2
ldc "on_blocking"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 8
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iconst_2
ireturn
7: StackMap locals:
StackMap stack:
iconst_3
ireturn
8: StackMap locals:
StackMap stack:
aload 0
9: getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "unknown mask signature"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 context Lorg/jruby/runtime/ThreadContext;
0 10 1 sym Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context final
sym final
public static org.jruby.runtime.builtin.IRubyObject pending_interrupt_p(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
aload 0
aload 2
invokevirtual org.jruby.RubyThread.pending_interrupt_p:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"pending_interrupt?"}, meta = true, optional = 1)
MethodParameters:
Name Flags
context
self
args
public org.jruby.runtime.builtin.IRubyObject pending_interrupt_p(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.isEmpty:()Z
ifeq 2
1: aload 1
getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
areturn
2: StackMap locals:
StackMap stack:
aload 2
arraylength
iconst_1
if_icmpne 9
3: aload 2
iconst_0
aaload
astore 3
start local 3 4: aload 3
instanceof org.jruby.RubyModule
ifne 6
5: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "class or module required for rescue clause"
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
6: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 0
aload 3
checkcast org.jruby.RubyModule
invokevirtual org.jruby.RubyThread.pendingInterruptInclude:(Lorg/jruby/RubyModule;)Z
ifeq 7
aload 1
getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
goto 8
StackMap locals:
StackMap stack:
7: aload 1
getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
StackMap locals:
StackMap stack: org.jruby.RubyBoolean
8: areturn
end local 3 9: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/RubyThread;
0 10 1 context Lorg/jruby/runtime/ThreadContext;
0 10 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
4 9 3 err Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"pending_interrupt?"}, optional = 1)
MethodParameters:
Name Flags
context
args
private boolean pendingInterruptInclude(org.jruby.RubyModule);
descriptor: (Lorg/jruby/RubyModule;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
astore 2
start local 2 1: goto 4
2: StackMap locals: java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.RubyModule
astore 3
start local 3 3: aload 3
aload 1
invokevirtual org.jruby.RubyModule.isKindOfModule:(Lorg/jruby/RubyModule;)Z
ifeq 4
iconst_1
ireturn
end local 3 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/RubyThread;
0 6 1 err Lorg/jruby/RubyModule;
1 6 2 iterator Ljava/util/Iterator<Lorg/jruby/runtime/builtin/IRubyObject;>;
3 4 3 e Lorg/jruby/RubyModule;
MethodParameters:
Name Flags
err
public org.jruby.runtime.builtin.IRubyObject setName(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
astore 2
start local 2 1: aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifne 8
2: aload 2
aload 1
invokestatic org.jruby.util.StringSupport.checkEmbeddedNulls:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
astore 3
start local 3 3: aload 3
invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
astore 4
start local 4 4: aload 4
invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
ifne 6
5: aload 2
new java.lang.StringBuilder
dup
ldc "ASCII incompatible encoding ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
6: StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding
StackMap stack:
aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
aload 2
aload 3
invokevirtual org.jruby.Ruby.freezeAndDedupString:(Lorg/jruby/RubyString;)Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyString.asJavaString:()Ljava/lang/String;
invokeinterface org.jruby.internal.runtime.ThreadLike.setRubyName:(Ljava/lang/String;)V
end local 4 end local 3 7: goto 9
8: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
aconst_null
invokeinterface org.jruby.internal.runtime.ThreadLike.setRubyName:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/RubyThread;
0 10 1 name Lorg/jruby/runtime/builtin/IRubyObject;
1 10 2 runtime Lorg/jruby/Ruby;
3 7 3 nameStr Lorg/jruby/RubyString;
4 7 4 enc Lorg/jcodings/Encoding;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"name="}, required = 1)
MethodParameters:
Name Flags
name
public org.jruby.runtime.builtin.IRubyObject getName();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
astore 1
start local 1 1: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.getRubyName:()Ljava/lang/String;
astore 2
start local 2 2: aload 2
ifnonnull 3
aload 1
invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
areturn
3: StackMap locals: org.jruby.Ruby java.lang.CharSequence
StackMap stack:
aload 1
aload 2
invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Ljava/lang/CharSequence;)Lorg/jruby/RubyString;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/RubyThread;
1 4 1 runtime Lorg/jruby/Ruby;
2 4 2 rubyName Ljava/lang/CharSequence;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"name"})
public static org.jruby.RubyBoolean abort_on_exception_x(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyBoolean;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
astore 1
start local 1 1: aload 1
invokevirtual org.jruby.Ruby.isGlobalAbortOnExceptionEnabled:()Z
ifeq 2
aload 1
invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
goto 3
StackMap locals: org.jruby.Ruby
StackMap stack:
2: aload 1
invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
StackMap locals:
StackMap stack: org.jruby.RubyBoolean
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
1 4 1 runtime Lorg/jruby/Ruby;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"abort_on_exception"}, meta = true)
MethodParameters:
Name Flags
recv
public static org.jruby.runtime.builtin.IRubyObject abort_on_exception_set_x(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
invokevirtual org.jruby.Ruby.setGlobalAbortOnExceptionEnabled:(Z)V
1: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 2 1 value Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"abort_on_exception="}, required = 1, meta = true)
MethodParameters:
Name Flags
recv
value
public static org.jruby.RubyThread current(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyThread;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
recv
public static org.jruby.RubyThread main(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyThread;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
invokevirtual org.jruby.internal.runtime.ThreadService.getMainThread:()Lorg/jruby/RubyThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
recv
public static org.jruby.runtime.builtin.IRubyObject pass(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: invokestatic java.lang.Thread.yield:()V
1: aload 0
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Lorg/jruby/runtime/ThreadContext;
0 2 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
recv
public static org.jruby.RubyArray list(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
astore 1
start local 1 1: aload 1
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
invokevirtual org.jruby.internal.runtime.ThreadService.getActiveRubyThreads:()[Lorg/jruby/RubyThread;
astore 2
start local 2 2: aload 1
aload 2
invokestatic org.jruby.RubyArray.newArrayMayCopy:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
1 3 1 runtime Lorg/jruby/Ruby;
2 3 2 activeThreads [Lorg/jruby/RubyThread;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
recv
private void addToCorrectThreadGroup(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
invokevirtual org.jruby.RubyThread.group:()Lorg/jruby/runtime/builtin/IRubyObject;
astore 2
start local 2 1: aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifne 4
2: aload 2
checkcast org.jruby.RubyThreadGroup
aload 0
invokevirtual org.jruby.RubyThreadGroup.addDirectly:(Lorg/jruby/RubyThread;)V
3: goto 5
4: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getDefaultThreadGroup:()Lorg/jruby/RubyThreadGroup;
aload 0
invokevirtual org.jruby.RubyThreadGroup.addDirectly:(Lorg/jruby/RubyThread;)V
5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/RubyThread;
0 6 1 context Lorg/jruby/runtime/ThreadContext;
1 6 2 group Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
private org.jruby.RubySymbol getSymbolKey(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.jruby.RubySymbol
ifeq 1
aload 1
checkcast org.jruby.RubySymbol
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
astore 2
start local 2 2: aload 1
instanceof org.jruby.RubyString
ifeq 3
aload 2
aload 1
checkcast org.jruby.RubyString
invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
invokevirtual org.jruby.Ruby.newSymbol:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubySymbol;
areturn
3: StackMap locals: org.jruby.Ruby
StackMap stack:
aload 2
aload 2
aload 2
aload 1
invokestatic org.jruby.util.RubyStringBuilder.ids:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
ldc " is not a symbol nor a string"
invokestatic org.jruby.util.RubyStringBuilder.str:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Ljava/lang/String;
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/RubyThread;
0 4 1 originalKey Lorg/jruby/runtime/builtin/IRubyObject;
2 4 2 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
originalKey
private java.util.Map<org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject> getFiberLocals();
descriptor: ()Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.fiberLocalVariables:Ljava/util/Map;
astore 1
start local 1 1: aload 1
ifnonnull 9
2: aload 0
dup
astore 2
monitorenter
3: aload 0
getfield org.jruby.RubyThread.fiberLocalVariables:Ljava/util/Map;
astore 1
4: aload 1
ifnonnull 5
aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
dup_x1
putfield org.jruby.RubyThread.fiberLocalVariables:Ljava/util/Map;
astore 1
5: StackMap locals: java.util.Map org.jruby.RubyThread
StackMap stack:
aload 2
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/RubyThread;
1 10 1 locals Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
Exception table:
from to target type
3 6 7 any
7 8 7 any
Signature: ()Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
private java.util.Map<org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject> getThreadLocals();
descriptor: ()Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.getFiberCurrentThread:()Lorg/jruby/RubyThread;
invokevirtual org.jruby.RubyThread.getThreadLocals0:()Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
Signature: ()Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
private java.util.Map<org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject> getThreadLocals0();
descriptor: ()Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.threadLocalVariables:Ljava/util/Map;
astore 1
start local 1 1: aload 1
ifnonnull 9
2: aload 0
dup
astore 2
monitorenter
3: aload 0
getfield org.jruby.RubyThread.threadLocalVariables:Ljava/util/Map;
astore 1
4: aload 1
ifnonnull 5
aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
dup_x1
putfield org.jruby.RubyThread.threadLocalVariables:Ljava/util/Map;
astore 1
5: StackMap locals: java.util.Map org.jruby.RubyThread
StackMap stack:
aload 2
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/RubyThread;
1 10 1 locals Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
Exception table:
from to target type
3 6 7 any
7 8 7 any
Signature: ()Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
public final java.util.Map<java.lang.Object, org.jruby.runtime.builtin.IRubyObject> getContextVariables();
descriptor: ()Ljava/util/Map;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.contextVariables:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
Signature: ()Ljava/util/Map<Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;>;
public boolean isAlive();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
ifeq 1
aload 0
invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
getstatic org.jruby.RubyThread$Status.DEAD:Lorg/jruby/RubyThread$Status;
if_acmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
public org.jruby.runtime.builtin.IRubyObject fetch(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
invokevirtual org.jruby.RubyThread.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 4
start local 4 1: aload 4
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifeq 4
2: aload 3
invokevirtual org.jruby.runtime.Block.isGiven:()Z
ifeq 3
aload 3
aload 1
aload 2
invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
3: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "key not found: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.inspect:()Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
aload 2
invokevirtual org.jruby.Ruby.newKeyError:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/exceptions/RaiseException;
athrow
4: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/RubyThread;
0 5 1 context Lorg/jruby/runtime/ThreadContext;
0 5 2 key Lorg/jruby/runtime/builtin/IRubyObject;
0 5 3 block Lorg/jruby/runtime/Block;
1 5 4 value Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
key
block
public org.jruby.runtime.builtin.IRubyObject fetch(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 4
invokevirtual org.jruby.runtime.Block.isGiven:()Z
istore 5
start local 5 1: iload 5
ifeq 3
2: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
getstatic org.jruby.common.IRubyWarnings$ID.BLOCK_BEATS_DEFAULT_VALUE:Lorg/jruby/common/IRubyWarnings$ID;
ldc "block supersedes default value argument"
invokevirtual org.jruby.common.RubyWarnings.warn:(Lorg/jruby/common/IRubyWarnings$ID;Ljava/lang/String;)V
3: StackMap locals: int
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.jruby.RubyThread.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 6
start local 6 4: aload 6
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 7
5: iload 5
ifeq 6
aload 4
aload 1
aload 2
invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
6: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 3
areturn
7: StackMap locals:
StackMap stack:
aload 6
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/RubyThread;
0 8 1 context Lorg/jruby/runtime/ThreadContext;
0 8 2 key Lorg/jruby/runtime/builtin/IRubyObject;
0 8 3 _default Lorg/jruby/runtime/builtin/IRubyObject;
0 8 4 block Lorg/jruby/runtime/Block;
1 8 5 blockGiven Z
4 8 6 value Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
key
_default
block
public org.jruby.runtime.builtin.IRubyObject op_aref(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
astore 2
1: aload 0
invokevirtual org.jruby.RubyThread.getFiberLocals:()Ljava/util/Map;
astore 3
start local 3 2: aload 3
dup
astore 4
monitorenter
3: aload 3
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
dup
astore 5
start local 5 4: ifnonnull 5
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
goto 6
StackMap locals: java.util.Map java.util.Map org.jruby.runtime.builtin.IRubyObject
StackMap stack:
5: aload 5
StackMap locals:
StackMap stack: org.jruby.runtime.builtin.IRubyObject
6: aload 4
monitorexit
7: areturn
end local 5 8: StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.util.Map java.util.Map
StackMap stack: java.lang.Throwable
aload 4
monitorexit
9: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/RubyThread;
0 10 1 context Lorg/jruby/runtime/ThreadContext;
0 10 2 key Lorg/jruby/runtime/builtin/IRubyObject;
2 10 3 locals Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
4 8 5 value Lorg/jruby/runtime/builtin/IRubyObject;
Exception table:
from to target type
3 7 8 any
8 9 8 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"[]"}, required = 1)
MethodParameters:
Name Flags
context
key
public org.jruby.runtime.builtin.IRubyObject op_aref(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 1
invokevirtual org.jruby.RubyThread.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 key Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
key
public org.jruby.runtime.builtin.IRubyObject op_aset(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.RubyThread.checkFrozen:()V
1: aload 0
aload 1
invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
astore 1
2: aload 0
invokevirtual org.jruby.RubyThread.getFiberLocals:()Ljava/util/Map;
astore 3
start local 3 3: aload 3
dup
astore 4
monitorenter
4: aload 3
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 4
monitorexit
6: goto 9
StackMap locals: org.jruby.RubyThread org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject java.util.Map java.util.Map
StackMap stack: java.lang.Throwable
7: aload 4
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/RubyThread;
0 10 1 key Lorg/jruby/runtime/builtin/IRubyObject;
0 10 2 value Lorg/jruby/runtime/builtin/IRubyObject;
3 10 3 locals Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
Exception table:
from to target type
4 6 7 any
7 8 7 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"[]="}, required = 2)
MethodParameters:
Name Flags
key
value
public org.jruby.RubyBoolean key_p(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyBoolean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
astore 2
1: aload 0
invokevirtual org.jruby.RubyThread.getFiberLocals:()Ljava/util/Map;
astore 3
start local 3 2: aload 3
dup
astore 4
monitorenter
3: aload 1
aload 3
aload 2
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/RubyBoolean;
aload 4
monitorexit
4: areturn
5: StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.util.Map java.util.Map
StackMap stack: java.lang.Throwable
aload 4
monitorexit
6: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/RubyThread;
0 7 1 context Lorg/jruby/runtime/ThreadContext;
0 7 2 key Lorg/jruby/runtime/builtin/IRubyObject;
2 7 3 locals Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
Exception table:
from to target type
3 4 5 any
5 6 5 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"key?"}, required = 1)
MethodParameters:
Name Flags
context
key
public org.jruby.RubyBoolean key_p(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyBoolean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 1
invokevirtual org.jruby.RubyThread.key_p:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyBoolean;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 key Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
key
public org.jruby.RubyArray keys();
descriptor: ()Lorg/jruby/RubyArray;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.getFiberLocals:()Ljava/util/Map;
astore 1
start local 1 1: aload 1
dup
astore 3
monitorenter
2: aload 1
invokeinterface java.util.Map.size:()I
anewarray org.jruby.runtime.builtin.IRubyObject
astore 2
start local 2 3: iconst_0
istore 4
start local 4 4: aload 1
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 7
StackMap locals: org.jruby.RubyThread java.util.Map org.jruby.runtime.builtin.IRubyObject[] java.util.Map int top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 5
start local 5 6: aload 2
iload 4
iinc 4 1
aload 5
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
aastore
end local 5 7: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 4 8: aload 3
monitorexit
9: goto 12
end local 2 StackMap locals: org.jruby.RubyThread java.util.Map top java.util.Map
StackMap stack: java.lang.Throwable
10: aload 3
monitorexit
11: athrow
start local 2 12: StackMap locals: org.jruby.RubyThread java.util.Map org.jruby.runtime.builtin.IRubyObject[]
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
aload 2
invokestatic org.jruby.RubyArray.newArrayMayCopy:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/jruby/RubyThread;
1 13 1 locals Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
3 10 2 ary [Lorg/jruby/runtime/builtin/IRubyObject;
12 13 2 ary [Lorg/jruby/runtime/builtin/IRubyObject;
4 8 4 i I
6 7 5 entry Ljava/util/Map$Entry<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
Exception table:
from to target type
2 9 10 any
10 11 10 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject thread_variable_p(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
astore 2
1: aload 0
invokevirtual org.jruby.RubyThread.getThreadLocals:()Ljava/util/Map;
astore 3
start local 3 2: aload 3
dup
astore 4
monitorenter
3: aload 1
aload 3
aload 2
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/RubyBoolean;
aload 4
monitorexit
4: areturn
5: StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.util.Map java.util.Map
StackMap stack: java.lang.Throwable
aload 4
monitorexit
6: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/RubyThread;
0 7 1 context Lorg/jruby/runtime/ThreadContext;
0 7 2 key Lorg/jruby/runtime/builtin/IRubyObject;
2 7 3 locals Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
Exception table:
from to target type
3 4 5 any
5 6 5 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"thread_variable?"}, required = 1)
MethodParameters:
Name Flags
context
key
public org.jruby.runtime.builtin.IRubyObject thread_variable_get(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
astore 2
1: aload 0
invokevirtual org.jruby.RubyThread.getThreadLocals:()Ljava/util/Map;
astore 3
start local 3 2: aload 3
dup
astore 4
monitorenter
3: aload 3
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
dup
astore 5
start local 5 4: ifnonnull 5
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
goto 6
StackMap locals: java.util.Map java.util.Map org.jruby.runtime.builtin.IRubyObject
StackMap stack:
5: aload 5
StackMap locals:
StackMap stack: org.jruby.runtime.builtin.IRubyObject
6: aload 4
monitorexit
7: areturn
end local 5 8: StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.util.Map java.util.Map
StackMap stack: java.lang.Throwable
aload 4
monitorexit
9: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/RubyThread;
0 10 1 context Lorg/jruby/runtime/ThreadContext;
0 10 2 key Lorg/jruby/runtime/builtin/IRubyObject;
2 10 3 locals Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
4 8 5 value Lorg/jruby/runtime/builtin/IRubyObject;
Exception table:
from to target type
3 7 8 any
8 9 8 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"thread_variable_get"}, required = 1)
MethodParameters:
Name Flags
context
key
public org.jruby.runtime.builtin.IRubyObject thread_variable_set(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.jruby.RubyThread.checkFrozen:()V
1: aload 0
aload 2
invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
astore 2
2: aload 0
invokevirtual org.jruby.RubyThread.getThreadLocals:()Ljava/util/Map;
astore 4
start local 4 3: aload 4
dup
astore 5
monitorenter
4: aload 4
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 5
monitorexit
6: goto 9
StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject java.util.Map java.util.Map
StackMap stack: java.lang.Throwable
7: aload 5
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/RubyThread;
0 10 1 context Lorg/jruby/runtime/ThreadContext;
0 10 2 key Lorg/jruby/runtime/builtin/IRubyObject;
0 10 3 value Lorg/jruby/runtime/builtin/IRubyObject;
3 10 4 locals Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
Exception table:
from to target type
4 6 7 any
7 8 7 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"thread_variable_set"}, required = 2)
MethodParameters:
Name Flags
context
key
value
public org.jruby.runtime.builtin.IRubyObject thread_variables(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.RubyThread.getThreadLocals:()Ljava/util/Map;
astore 2
start local 2 1: aload 2
dup
astore 4
monitorenter
2: aload 2
invokeinterface java.util.Map.size:()I
anewarray org.jruby.runtime.builtin.IRubyObject
astore 3
start local 3 3: iconst_0
istore 5
start local 5 4: aload 2
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 7
StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext java.util.Map org.jruby.runtime.builtin.IRubyObject[] java.util.Map int top java.util.Iterator
StackMap stack:
5: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 6
start local 6 6: aload 3
iload 5
iinc 5 1
aload 6
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
aastore
end local 6 7: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 5 8: aload 4
monitorexit
9: goto 12
end local 3 StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext java.util.Map top java.util.Map
StackMap stack: java.lang.Throwable
10: aload 4
monitorexit
11: athrow
start local 3 12: StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext java.util.Map org.jruby.runtime.builtin.IRubyObject[]
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
invokestatic org.jruby.RubyArray.newArrayMayCopy:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/jruby/RubyThread;
0 13 1 context Lorg/jruby/runtime/ThreadContext;
1 13 2 locals Ljava/util/Map<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
3 10 3 ary [Lorg/jruby/runtime/builtin/IRubyObject;
12 13 3 ary [Lorg/jruby/runtime/builtin/IRubyObject;
4 8 5 i I
6 7 6 entry Ljava/util/Map$Entry<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;>;
Exception table:
from to target type
2 9 10 any
10 11 10 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"thread_variables"})
MethodParameters:
Name Flags
context
public org.jruby.RubyBoolean abort_on_exception();
descriptor: ()Lorg/jruby/RubyBoolean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.abortOnException:Z
ifeq 1
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
StackMap locals:
StackMap stack: org.jruby.RubyBoolean
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject abort_on_exception_set(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
putfield org.jruby.RubyThread.abortOnException:Z
1: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
0 2 1 val Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"abort_on_exception="}, required = 1)
MethodParameters:
Name Flags
val
public org.jruby.RubyBoolean alive_p();
descriptor: ()Lorg/jruby/RubyBoolean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.isAlive:()Z
ifeq 1
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
StackMap locals:
StackMap stack: org.jruby.RubyBoolean
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"alive?"})
public org.jruby.runtime.builtin.IRubyObject join(org.jruby.runtime.builtin.IRubyObject[]);
descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 1
invokevirtual org.jruby.RubyThread.join:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 args [Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
args
public org.jruby.runtime.builtin.IRubyObject join(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 1: ldc 9223372036854775807
lstore 4
start local 4 2: aload 2
arraylength
ifle 10
aload 2
iconst_0
aaload
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifne 10
3: aload 2
arraylength
iconst_1
if_icmple 5
4: aload 3
aload 2
arraylength
iconst_1
invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
athrow
5: StackMap locals: org.jruby.Ruby long
StackMap stack:
ldc 1000.0
aload 2
iconst_0
aaload
invokestatic org.jruby.RubyNumeric.num2dbl:(Lorg/jruby/runtime/builtin/IRubyObject;)D
dmul
d2l
lstore 4
6: lload 4
lconst_0
lcmp
ifgt 10
7: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
ifeq 9
8: aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
9: StackMap locals:
StackMap stack:
aload 0
areturn
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.isCurrent:()Z
ifeq 12
11: aload 3
ldc "Target thread must not be current thread"
invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
12: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
astore 6
start local 6 13: aload 6
invokevirtual org.jruby.RubyThread.enterSleep:()V
14: lload 4
ldc 200
invokestatic java.lang.Math.min:(JJ)J
lstore 7
start local 7 15: invokestatic java.lang.System.currentTimeMillis:()J
lstore 9
start local 9 16: StackMap locals: org.jruby.RubyThread long long
StackMap stack:
aload 6
aload 1
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
17: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
lload 7
invokeinterface org.jruby.internal.runtime.ThreadLike.join:(J)V
18: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
ifne 20
19: goto 33
20: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lload 9
lsub
lload 4
lcmp
ifle 16
end local 9 end local 7 21: goto 33
StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby long org.jruby.RubyThread
StackMap stack: java.lang.InterruptedException
22: astore 7
start local 7 23: aload 7
invokevirtual java.lang.InterruptedException.printStackTrace:()V
24: getstatic org.jruby.RubyThread.$assertionsDisabled:Z
ifne 25
new java.lang.AssertionError
dup
aload 7
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 7 25: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.jruby.RubyThread.exitSleep:()V
goto 34
26: StackMap locals:
StackMap stack: java.util.concurrent.ExecutionException
astore 7
start local 7 27: aload 7
invokevirtual java.util.concurrent.ExecutionException.printStackTrace:()V
28: getstatic org.jruby.RubyThread.$assertionsDisabled:Z
ifne 29
new java.lang.AssertionError
dup
aload 7
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 7 29: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.jruby.RubyThread.exitSleep:()V
goto 34
30: StackMap locals:
StackMap stack: java.lang.Throwable
astore 11
31: aload 6
invokevirtual org.jruby.RubyThread.exitSleep:()V
32: aload 11
athrow
33: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.jruby.RubyThread.exitSleep:()V
34: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.exitingException:Ljava/lang/Throwable;
astore 7
start local 7 35: aload 7
ifnull 41
36: aload 7
instanceof org.jruby.exceptions.RaiseException
ifeq 39
37: aload 3
invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
ldc "$!"
aload 7
checkcast org.jruby.exceptions.RaiseException
invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
invokevirtual org.jruby.internal.runtime.GlobalVariables.set:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
38: goto 40
39: StackMap locals: java.lang.Throwable
StackMap stack:
aload 3
invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
ldc "$!"
aload 3
aload 7
invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual org.jruby.internal.runtime.GlobalVariables.set:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
40: StackMap locals:
StackMap stack:
aload 7
invokestatic org.jruby.runtime.Helpers.throwException:(Ljava/lang/Throwable;)V
41: StackMap locals:
StackMap stack:
aload 6
aload 1
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
42: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
ifeq 44
43: aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
44: StackMap locals:
StackMap stack:
aload 0
areturn
end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lorg/jruby/RubyThread;
0 45 1 context Lorg/jruby/runtime/ThreadContext;
0 45 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
1 45 3 runtime Lorg/jruby/Ruby;
2 45 4 timeoutMillis J
13 45 6 currentThread Lorg/jruby/RubyThread;
15 21 7 timeToWait J
16 21 9 start J
23 25 7 ie Ljava/lang/InterruptedException;
27 29 7 ie Ljava/util/concurrent/ExecutionException;
35 45 7 exception Ljava/lang/Throwable;
Exception table:
from to target type
13 21 22 Class java.lang.InterruptedException
13 21 26 Class java.util.concurrent.ExecutionException
13 25 30 any
26 29 30 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(optional = 1)
MethodParameters:
Name Flags
context
args
public org.jruby.runtime.builtin.IRubyObject value(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic org.jruby.RubyThread.NULL_ARRAY:[Lorg/jruby/RubyHash;
invokevirtual org.jruby.RubyThread.join:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
1: aload 0
dup
astore 2
monitorenter
2: aload 0
getfield org.jruby.RubyThread.finalResult:Lorg/jruby/runtime/builtin/IRubyObject;
aload 2
monitorexit
3: areturn
4: StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext org.jruby.RubyThread
StackMap stack: java.lang.Throwable
aload 2
monitorexit
5: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/RubyThread;
0 6 1 context Lorg/jruby/runtime/ThreadContext;
Exception table:
from to target type
2 3 4 any
4 5 4 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject value();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
invokevirtual org.jruby.RubyThread.value:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public org.jruby.runtime.builtin.IRubyObject group();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.threadGroup:Lorg/jruby/RubyThreadGroup;
astore 1
start local 1 1: aload 1
ifnonnull 2
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
goto 3
StackMap locals: org.jruby.RubyThreadGroup
StackMap stack:
2: aload 1
StackMap locals:
StackMap stack: org.jruby.runtime.builtin.IRubyObject
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/RubyThread;
1 4 1 group Lorg/jruby/RubyThreadGroup;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
void setThreadGroup(org.jruby.RubyThreadGroup);
descriptor: (Lorg/jruby/RubyThreadGroup;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.jruby.RubyThread.threadGroup:Lorg/jruby/RubyThreadGroup;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
0 2 1 rubyThreadGroup Lorg/jruby/RubyThreadGroup;
MethodParameters:
Name Flags
rubyThreadGroup
public org.jruby.runtime.builtin.IRubyObject inspect();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.jruby.RubyThread.metaClass:Lorg/jruby/RubyClass;
getfield org.jruby.RubyClass.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
invokevirtual org.jruby.RubyThread.inspect:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyString;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
public org.jruby.RubyString inspect(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyString;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 2
start local 2 1: aload 2
ldc "#<"
invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
astore 3
start local 3 2: aload 3
aload 0
invokevirtual org.jruby.RubyThread.getMetaClass:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.RubyClass.getRealClass:()Lorg/jruby/RubyClass;
aload 1
invokevirtual org.jruby.RubyClass.toRubyString:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyString.cat:(Lorg/jruby/RubyString;)Lorg/jruby/RubyString;
pop
3: aload 3
bipush 58
invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
pop
4: aload 3
aload 0
invokevirtual org.jruby.RubyThread.identityString:()Ljava/lang/String;
invokevirtual org.jruby.RubyString.catString:(Ljava/lang/String;)Lorg/jruby/RubyString;
pop
5: aload 0
dup
astore 4
monitorenter
6: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.getRubyName:()Ljava/lang/String;
astore 5
start local 5 7: aload 5
invokestatic org.jruby.RubyThread.notEmpty:(Ljava/lang/String;)Z
ifeq 10
8: aload 3
bipush 64
invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
pop
9: aload 3
aload 2
aload 5
invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
invokevirtual org.jruby.RubySymbol.getBytes:()Lorg/jruby/util/ByteList;
invokevirtual org.jruby.RubyString.cat:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
pop
10: StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.RubyString org.jruby.RubyThread java.lang.String
StackMap stack:
aload 0
getfield org.jruby.RubyThread.file:Ljava/lang/String;
invokestatic org.jruby.RubyThread.notEmpty:(Ljava/lang/String;)Z
ifeq 15
aload 0
getfield org.jruby.RubyThread.line:I
iflt 15
11: aload 3
bipush 64
invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
pop
12: aload 3
aload 0
getfield org.jruby.RubyThread.file:Ljava/lang/String;
invokevirtual org.jruby.RubyString.catString:(Ljava/lang/String;)Lorg/jruby/RubyString;
pop
13: aload 3
bipush 58
invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
pop
14: aload 3
aload 0
getfield org.jruby.RubyThread.line:I
iconst_1
iadd
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokevirtual org.jruby.RubyString.catString:(Ljava/lang/String;)Lorg/jruby/RubyString;
pop
15: StackMap locals:
StackMap stack:
aload 3
bipush 32
invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
pop
16: aload 3
aload 0
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.toString:()Ljava/lang/String;
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual org.jruby.RubyString.catString:(Ljava/lang/String;)Lorg/jruby/RubyString;
pop
17: aload 3
bipush 62
invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
pop
18: aload 3
aload 4
monitorexit
19: areturn
end local 5 20: StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.RubyString org.jruby.RubyThread
StackMap stack: java.lang.Throwable
aload 4
monitorexit
21: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/jruby/RubyThread;
0 22 1 context Lorg/jruby/runtime/ThreadContext;
1 22 2 runtime Lorg/jruby/Ruby;
2 22 3 result Lorg/jruby/RubyString;
7 20 5 id Ljava/lang/String;
Exception table:
from to target type
6 19 20 any
20 21 20 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
private static boolean notEmpty(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
invokevirtual java.lang.String.length:()I
ifle 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 str Ljava/lang/String;
MethodParameters:
Name Flags
str
public static org.jruby.runtime.builtin.IRubyObject stop(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
astore 2
start local 2 1: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
invokevirtual org.jruby.internal.runtime.ThreadService.getActiveRubyThreads:()[Lorg/jruby/RubyThread;
arraylength
iconst_1
if_icmpne 3
2: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "stopping only thread\n\tnote: use sleep to stop forever"
invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
3: StackMap locals: org.jruby.RubyThread
StackMap stack:
aload 2
dup
astore 3
monitorenter
4: aload 2
aload 0
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
5: aload 2
invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
astore 4
start local 4 6: aload 2
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
getstatic org.jruby.RubyThread$Status.SLEEP:Lorg/jruby/RubyThread$Status;
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
7: aload 2
invokevirtual java.lang.Object.wait:()V
8: goto 16
StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.RubyThread org.jruby.RubyThread org.jruby.RubyThread$Status
StackMap stack: java.lang.InterruptedException
9: pop
10: aload 2
aload 0
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
11: aload 2
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
goto 18
12: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
13: aload 2
aload 0
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
14: aload 2
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
15: aload 5
athrow
16: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
17: aload 2
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
end local 4 18: StackMap locals:
StackMap stack:
aload 3
monitorexit
19: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
20: aload 3
monitorexit
21: athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 context Lorg/jruby/runtime/ThreadContext;
0 23 1 receiver Lorg/jruby/runtime/builtin/IRubyObject;
1 23 2 rubyThread Lorg/jruby/RubyThread;
6 18 4 oldStatus Lorg/jruby/RubyThread$Status;
Exception table:
from to target type
6 8 9 Class java.lang.InterruptedException
6 10 12 any
4 19 20 any
20 21 20 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
receiver
public static org.jruby.runtime.builtin.IRubyObject kill(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof org.jruby.RubyThread
ifne 1
aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
aload 1
aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getThread:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
athrow
1: StackMap locals:
StackMap stack:
aload 1
checkcast org.jruby.RubyThread
invokevirtual org.jruby.RubyThread.kill:()Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 receiver Lorg/jruby/runtime/builtin/IRubyObject;
0 2 1 rubyThread Lorg/jruby/runtime/builtin/IRubyObject;
0 2 2 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(required = 1, meta = true)
MethodParameters:
Name Flags
receiver
rubyThread
block
public static org.jruby.runtime.builtin.IRubyObject exit(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
invokevirtual org.jruby.internal.runtime.ThreadService.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
astore 2
start local 2 1: aload 2
invokevirtual org.jruby.RubyThread.kill:()Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 receiver Lorg/jruby/runtime/builtin/IRubyObject;
0 2 1 block Lorg/jruby/runtime/Block;
1 2 2 rubyThread Lorg/jruby/RubyThread;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
receiver
block
public org.jruby.RubyBoolean stop_p();
descriptor: ()Lorg/jruby/RubyBoolean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
getstatic org.jruby.RubyThread$Status.SLEEP:Lorg/jruby/RubyThread$Status;
if_acmpeq 1
aload 0
invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
getstatic org.jruby.RubyThread$Status.DEAD:Lorg/jruby/RubyThread$Status;
if_acmpeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack: org.jruby.Ruby
1: iconst_1
StackMap locals: org.jruby.RubyThread
StackMap stack: org.jruby.Ruby int
2: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"stop?"})
public synchronized org.jruby.RubyThread wakeup();
descriptor: ()Lorg/jruby/RubyThread;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
ifne 2
aload 0
invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
getstatic org.jruby.RubyThread$Status.DEAD:Lorg/jruby/RubyThread$Status;
if_acmpne 2
1: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
ldc "killed thread"
invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
getstatic org.jruby.RubyThread$Status.RUN:Lorg/jruby/RubyThread$Status;
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
3: aload 0
invokevirtual org.jruby.RubyThread.interrupt:()V
4: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/RubyThread;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.RubyFixnum priority();
descriptor: ()Lorg/jruby/RubyFixnum;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.getPriority:()I
invokestatic org.jruby.RubyThread.javaPriorityToRubyPriority:(I)I
i2l
invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject priority_set(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
istore 2
start local 2 1: iload 2
bipush -3
if_icmpge 4
2: bipush -3
istore 2
3: goto 6
StackMap locals: int
StackMap stack:
4: iload 2
iconst_3
if_icmple 6
5: iconst_3
istore 2
6: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
ifeq 14
7: iload 2
invokestatic org.jruby.RubyThread.rubyPriorityToJavaPriority:(I)I
istore 3
start local 3 8: iload 3
iconst_1
if_icmpge 11
9: iconst_1
istore 3
10: goto 13
StackMap locals: int
StackMap stack:
11: iload 3
bipush 10
if_icmple 13
12: bipush 10
istore 3
13: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
iload 3
invokeinterface org.jruby.internal.runtime.ThreadLike.setPriority:(I)V
end local 3 14: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
iload 2
i2l
invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/jruby/RubyThread;
0 15 1 priority Lorg/jruby/runtime/builtin/IRubyObject;
1 15 2 iPriority I
8 14 3 jPriority I
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"priority="}, required = 1)
MethodParameters:
Name Flags
priority
public static int javaPriorityToRubyPriority(int);
descriptor: (I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: ldc 1.5
ldc 8.0
iload 0
i2d
dmul
ldc 41.0
dadd
invokestatic java.lang.Math.sqrt:(D)D
dmul
ldc 13.5
dsub
dstore 1
start local 1 1: dload 1
d2f
invokestatic java.lang.Math.round:(F)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 javaPriority I
1 2 1 d D
MethodParameters:
Name Flags
javaPriority
public static int rubyPriorityToJavaPriority(int);
descriptor: (I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: iload 0
iload 0
imul
i2d
ldc 18.0
ddiv
ldc 1.5
iload 0
i2d
dmul
dadd
ldc 5.0
dadd
dstore 1
start local 1 1: dload 1
d2f
invokestatic java.lang.Math.round:(F)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 rubyPriority I
1 2 1 d D
MethodParameters:
Name Flags
rubyPriority
public final org.jruby.runtime.builtin.IRubyObject raise(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.RubyThread.metaClass:Lorg/jruby/RubyClass;
getfield org.jruby.RubyClass.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
astore 2
start local 2 1: aload 0
aload 2
aload 2
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
iconst_1
anewarray org.jruby.runtime.builtin.IRubyObject
dup
iconst_0
aload 1
aastore
invokevirtual org.jruby.RubyThread.genericRaise:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyThread;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
0 2 1 exception Lorg/jruby/runtime/builtin/IRubyObject;
1 2 2 context Lorg/jruby/runtime/ThreadContext;
MethodParameters:
Name Flags
exception
public final org.jruby.runtime.builtin.IRubyObject raise(org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyString);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.RubyThread.metaClass:Lorg/jruby/RubyClass;
getfield org.jruby.RubyClass.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
astore 3
start local 3 1: aload 0
aload 3
aload 3
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
iconst_2
anewarray org.jruby.runtime.builtin.IRubyObject
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
invokevirtual org.jruby.RubyThread.genericRaise:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyThread;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
0 2 1 exception Lorg/jruby/runtime/builtin/IRubyObject;
0 2 2 message Lorg/jruby/RubyString;
1 2 3 context Lorg/jruby/runtime/ThreadContext;
MethodParameters:
Name Flags
exception
message
public org.jruby.runtime.builtin.IRubyObject raise(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 1
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
aload 2
invokevirtual org.jruby.RubyThread.genericRaise:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyThread;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(optional = 3)
MethodParameters:
Name Flags
context
args
block
public org.jruby.runtime.builtin.IRubyObject raise(org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 1
aload 2
invokevirtual org.jruby.RubyThread.raise:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
args
block
private org.jruby.runtime.builtin.IRubyObject genericRaise(org.jruby.runtime.ThreadContext, org.jruby.RubyThread, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyThread;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.jruby.RubyThread.isAlive:()Z
ifne 1
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
1: StackMap locals:
StackMap stack:
aload 2
aload 0
if_acmpne 4
2: aload 1
aload 0
aload 3
getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
invokestatic org.jruby.RubyKernel.raise:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
3: getstatic org.jruby.RubyThread.$assertionsDisabled:Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 3
getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
invokevirtual org.jruby.RubyThread.prepareRaiseException:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 4
start local 4 5: aload 0
aload 4
invokevirtual org.jruby.RubyThread.pendingInterruptEnqueue:(Lorg/jruby/runtime/builtin/IRubyObject;)V
6: aload 0
invokevirtual org.jruby.RubyThread.interrupt:()V
7: aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/RubyThread;
0 8 1 context Lorg/jruby/runtime/ThreadContext;
0 8 2 currentThread Lorg/jruby/RubyThread;
0 8 3 args [Lorg/jruby/runtime/builtin/IRubyObject;
5 8 4 exception Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
currentThread
args
private org.jruby.runtime.builtin.IRubyObject prepareRaiseException(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 4
start local 4 1: aload 2
arraylength
ifne 5
2: aload 0
getfield org.jruby.RubyThread.errorInfo:Lorg/jruby/runtime/builtin/IRubyObject;
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifeq 4
3: aload 4
aload 4
invokevirtual org.jruby.Ruby.getRuntimeError:()Lorg/jruby/RubyClass;
ldc ""
invokestatic org.jruby.exceptions.RaiseException.from:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
areturn
4: StackMap locals: org.jruby.Ruby
StackMap stack:
aload 0
getfield org.jruby.RubyThread.errorInfo:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
5: StackMap locals:
StackMap stack:
aload 2
iconst_0
aaload
astore 5
start local 5 6: aload 2
arraylength
iconst_1
if_icmpne 16
7: aload 5
instanceof org.jruby.RubyString
ifeq 10
8: aload 4
invokevirtual org.jruby.Ruby.getRuntimeError:()Lorg/jruby/RubyClass;
aload 1
aload 2
aload 3
invokevirtual org.jruby.RubyClass.newInstance:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 6
start local 6 9: goto 19
end local 6 10: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 5
instanceof org.jruby.java.proxies.ConcreteJavaProxy
ifeq 12
11: aload 5
areturn
12: StackMap locals:
StackMap stack:
aload 5
ldc "exception"
invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
ifne 14
13: aload 4
ldc "exception class/object expected"
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
14: StackMap locals:
StackMap stack:
aload 5
aload 1
ldc "exception"
invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 6
start local 6 15: goto 19
end local 6 16: StackMap locals:
StackMap stack:
aload 5
ldc "exception"
invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
ifne 18
17: aload 4
ldc "exception class/object expected"
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
18: StackMap locals:
StackMap stack:
aload 5
aload 1
ldc "exception"
aload 2
iconst_1
aaload
invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 6
start local 6 19: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 4
invokevirtual org.jruby.Ruby.getException:()Lorg/jruby/RubyClass;
aload 6
invokevirtual org.jruby.RubyClass.isInstance:(Lorg/jruby/runtime/builtin/IRubyObject;)Z
ifne 21
20: aload 4
ldc "exception object expected"
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
21: StackMap locals:
StackMap stack:
aload 6
checkcast org.jruby.RubyException
astore 7
start local 7 22: aload 2
arraylength
iconst_3
if_icmpne 24
23: aload 7
aload 2
iconst_2
aaload
invokevirtual org.jruby.RubyException.set_backtrace:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
24: StackMap locals: org.jruby.RubyException
StackMap stack:
aload 1
invokevirtual org.jruby.runtime.ThreadContext.getErrorInfo:()Lorg/jruby/runtime/builtin/IRubyObject;
astore 8
start local 8 25: aload 8
aload 7
if_acmpeq 27
26: aload 7
aload 8
invokevirtual org.jruby.RubyException.setCause:(Lorg/jruby/runtime/builtin/IRubyObject;)V
27: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 7
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/jruby/RubyThread;
0 28 1 context Lorg/jruby/runtime/ThreadContext;
0 28 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 28 3 block Lorg/jruby/runtime/Block;
1 28 4 runtime Lorg/jruby/Ruby;
6 28 5 arg Lorg/jruby/runtime/builtin/IRubyObject;
9 10 6 tmp Lorg/jruby/runtime/builtin/IRubyObject;
15 16 6 tmp Lorg/jruby/runtime/builtin/IRubyObject;
19 28 6 tmp Lorg/jruby/runtime/builtin/IRubyObject;
22 28 7 exception Lorg/jruby/RubyException;
25 28 8 cause Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
args
block
public synchronized org.jruby.runtime.builtin.IRubyObject run();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.wakeup:()Lorg/jruby/RubyThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public boolean sleep(long);
descriptor: (J)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: getstatic org.jruby.RubyThread.$assertionsDisabled:Z
ifne 1
aload 0
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.sleepTask:Lorg/jruby/RubyThread$SleepTask2;
lload 1
putfield org.jruby.RubyThread$SleepTask2.millis:J
2: aload 0
aload 0
invokevirtual org.jruby.RubyThread.getContext:()Lorg/jruby/runtime/ThreadContext;
aconst_null
aload 0
getfield org.jruby.RubyThread.sleepTask:Lorg/jruby/RubyThread$SleepTask2;
invokevirtual org.jruby.RubyThread.executeTask:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/RubyThread$Task;)Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 3
start local 3 3: lload 1
lconst_0
lcmp
ifeq 4
lload 3
lload 1
lcmp
iflt 6
4: StackMap locals: long
StackMap stack:
aload 0
getfield org.jruby.RubyThread.sleepTask:Lorg/jruby/RubyThread$SleepTask2;
getfield org.jruby.RubyThread$SleepTask2.semaphore:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.drainPermits:()I
pop
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.sleepTask:Lorg/jruby/RubyThread$SleepTask2;
getfield org.jruby.RubyThread$SleepTask2.semaphore:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.drainPermits:()I
pop
7: iconst_0
ireturn
end local 3 8: StackMap locals: org.jruby.RubyThread long
StackMap stack: java.lang.Throwable
astore 5
9: aload 0
getfield org.jruby.RubyThread.sleepTask:Lorg/jruby/RubyThread$SleepTask2;
getfield org.jruby.RubyThread$SleepTask2.semaphore:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.drainPermits:()I
pop
10: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/RubyThread;
0 11 1 millis J
3 8 3 timeSlept J
Exception table:
from to target type
2 4 8 any
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
millis
public org.jruby.runtime.builtin.IRubyObject status();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
invokevirtual org.jruby.RubyThread.status:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
public org.jruby.runtime.builtin.IRubyObject status(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
astore 2
start local 2 1: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
ifeq 3
aload 2
getstatic org.jruby.RubyThread$Status.DEAD:Lorg/jruby/RubyThread$Status;
if_acmpeq 3
2: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
invokevirtual org.jruby.Ruby.getThreadStatus:(Lorg/jruby/RubyThread$Status;)Lorg/jruby/RubyString;
areturn
3: StackMap locals: org.jruby.RubyThread$Status
StackMap stack:
aload 0
getfield org.jruby.RubyThread.exitingException:Ljava/lang/Throwable;
ifnull 4
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
goto 5
StackMap locals:
StackMap stack:
4: aload 1
getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
StackMap locals:
StackMap stack: org.jruby.runtime.builtin.IRubyObject
5: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/RubyThread;
0 6 1 context Lorg/jruby/runtime/ThreadContext;
1 6 2 status Lorg/jruby/RubyThread$Status;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public void executeBlockingTask(org.jruby.RubyThread$BlockingTask);
descriptor: (Lorg/jruby/RubyThread$BlockingTask;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.jruby.RubyThread.currentBlockingTask:Lorg/jruby/RubyThread$BlockingTask;
1: aload 0
invokevirtual org.jruby.RubyThread.enterSleep:()V
2: aload 0
invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
3: aload 1
invokeinterface org.jruby.RubyThread$BlockingTask.run:()V
4: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 2
6: aload 0
invokevirtual org.jruby.RubyThread.exitSleep:()V
7: aload 0
aconst_null
putfield org.jruby.RubyThread.currentBlockingTask:Lorg/jruby/RubyThread$BlockingTask;
8: aload 0
invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
9: aload 2
athrow
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.exitSleep:()V
11: aload 0
aconst_null
putfield org.jruby.RubyThread.currentBlockingTask:Lorg/jruby/RubyThread$BlockingTask;
12: aload 0
invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/jruby/RubyThread;
0 14 1 task Lorg/jruby/RubyThread$BlockingTask;
Exception table:
from to target type
0 5 5 any
Exceptions:
throws java.lang.InterruptedException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
task
public <Data, Return> Return executeTask(org.jruby.runtime.ThreadContext, Data, org.jruby.RubyThread$Task<Data, Return>);
descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/RubyThread$Task;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
getstatic org.jruby.RubyThread$Status.SLEEP:Lorg/jruby/RubyThread$Status;
aload 3
invokevirtual org.jruby.RubyThread.executeTask:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/RubyThread$Status;Lorg/jruby/RubyThread$Task;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 data TData;
0 1 3 task Lorg/jruby/RubyThread$Task<TData;TReturn;>;
Exceptions:
throws java.lang.InterruptedException
Signature: <Data:Ljava/lang/Object;Return:Ljava/lang/Object;>(Lorg/jruby/runtime/ThreadContext;TData;Lorg/jruby/RubyThread$Task<TData;TReturn;>;)TReturn;
MethodParameters:
Name Flags
context
data
task
public <Data, Return> Return executeTask(org.jruby.runtime.ThreadContext, Data, org.jruby.RubyThread$Status, org.jruby.RubyThread$Task<Data, Return>);
descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/RubyThread$Status;Lorg/jruby/RubyThread$Task;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast org.jruby.RubyThread$Status
astore 5
start local 5 1: aload 0
aload 2
putfield org.jruby.RubyThread.unblockArg:Ljava/lang/Object;
2: aload 0
aload 4
putfield org.jruby.RubyThread.unblockFunc:Lorg/jruby/RubyThread$Unblocker;
3: aload 0
aload 1
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
4: aload 0
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
aload 3
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
5: aload 4
aload 1
aload 2
invokeinterface org.jruby.RubyThread$Task.run:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;)Ljava/lang/Object;
astore 7
6: aload 0
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
aload 5
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
7: aload 0
aconst_null
putfield org.jruby.RubyThread.unblockFunc:Lorg/jruby/RubyThread$Unblocker;
8: aload 0
aconst_null
putfield org.jruby.RubyThread.unblockArg:Ljava/lang/Object;
9: aload 0
aload 1
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
10: aload 7
areturn
11: StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext java.lang.Object org.jruby.RubyThread$Status org.jruby.RubyThread$Task org.jruby.RubyThread$Status
StackMap stack: java.lang.Throwable
astore 6
12: aload 0
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
aload 5
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
13: aload 0
aconst_null
putfield org.jruby.RubyThread.unblockFunc:Lorg/jruby/RubyThread$Unblocker;
14: aload 0
aconst_null
putfield org.jruby.RubyThread.unblockArg:Ljava/lang/Object;
15: aload 0
aload 1
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
16: aload 6
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/jruby/RubyThread;
0 17 1 context Lorg/jruby/runtime/ThreadContext;
0 17 2 data TData;
0 17 3 status Lorg/jruby/RubyThread$Status;
0 17 4 task Lorg/jruby/RubyThread$Task<TData;TReturn;>;
1 17 5 oldStatus Lorg/jruby/RubyThread$Status;
Exception table:
from to target type
1 6 11 any
Exceptions:
throws java.lang.InterruptedException
Signature: <Data:Ljava/lang/Object;Return:Ljava/lang/Object;>(Lorg/jruby/runtime/ThreadContext;TData;Lorg/jruby/RubyThread$Status;Lorg/jruby/RubyThread$Task<TData;TReturn;>;)TReturn;
MethodParameters:
Name Flags
context
data
status
task
public void enterSleep();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
getstatic org.jruby.RubyThread$Status.SLEEP:Lorg/jruby/RubyThread$Status;
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
public void exitSleep();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
getstatic org.jruby.RubyThread$Status.ABORTING:Lorg/jruby/RubyThread$Status;
if_acmpeq 2
1: aload 0
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
getstatic org.jruby.RubyThread$Status.RUN:Lorg/jruby/RubyThread$Status;
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
private org.jruby.RubyThread$Status getStatus();
descriptor: ()Lorg/jruby/RubyThread$Status;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast org.jruby.RubyThread$Status
astore 1
start local 1 1: aload 1
getstatic org.jruby.RubyThread$Status.NATIVE:Lorg/jruby/RubyThread$Status;
if_acmpeq 2
aload 1
areturn
2: StackMap locals: org.jruby.RubyThread$Status
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.nativeStatus:()Lorg/jruby/RubyThread$Status;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
1 3 1 status Lorg/jruby/RubyThread$Status;
private org.jruby.RubyThread$Status nativeStatus();
descriptor: ()Lorg/jruby/RubyThread$Status;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic org.jruby.RubyThread.$SWITCH_TABLE$java$lang$Thread$State:()[I
aload 0
invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getState:()Ljava/lang/Thread$State;
invokevirtual java.lang.Thread$State.ordinal:()I
iaload
tableswitch { // 1 - 6
1: 1
2: 1
3: 2
4: 2
5: 2
6: 3
default: 1
}
1: StackMap locals:
StackMap stack:
getstatic org.jruby.RubyThread$Status.RUN:Lorg/jruby/RubyThread$Status;
areturn
2: StackMap locals:
StackMap stack:
getstatic org.jruby.RubyThread$Status.SLEEP:Lorg/jruby/RubyThread$Status;
areturn
3: StackMap locals:
StackMap stack:
getstatic org.jruby.RubyThread$Status.DEAD:Lorg/jruby/RubyThread$Status;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/RubyThread;
public org.jruby.runtime.builtin.IRubyObject kill();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
astore 1
start local 1 1: aload 1
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
astore 2
start local 2 2: aload 1
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
invokevirtual org.jruby.internal.runtime.ThreadService.getMainThread:()Lorg/jruby/RubyThread;
pop
3: aload 0
getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
getstatic org.jruby.RubyThread$Status.ABORTING:Lorg/jruby/RubyThread$Status;
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
4: aload 0
aload 1
aload 2
invokevirtual org.jruby.RubyThread.genericKill:(Lorg/jruby/Ruby;Lorg/jruby/RubyThread;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/RubyThread;
1 5 1 runtime Lorg/jruby/Ruby;
2 5 2 currentThread Lorg/jruby/RubyThread;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"kill", "exit", "terminate"})
private org.jruby.runtime.builtin.IRubyObject genericKill(org.jruby.Ruby, org.jruby.RubyThread);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyThread;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 0
if_acmpne 1
invokestatic org.jruby.RubyThread.throwThreadKill:()V
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
invokevirtual org.jruby.RubyThread.pendingInterruptEnqueue:(Lorg/jruby/runtime/builtin/IRubyObject;)V
2: aload 0
invokevirtual org.jruby.RubyThread.interrupt:()V
3: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/RubyThread;
0 4 1 runtime Lorg/jruby/Ruby;
0 4 2 currentThread Lorg/jruby/RubyThread;
MethodParameters:
Name Flags
runtime
currentThread
private void pendingInterruptEnqueue(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
1: aload 0
iconst_0
putfield org.jruby.RubyThread.pendingInterruptQueueChecked:Z
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
0 3 1 v Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
v
public void dieFromFinalizer();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
aconst_null
invokevirtual org.jruby.RubyThread.genericKill:(Lorg/jruby/Ruby;Lorg/jruby/RubyThread;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
public org.jruby.runtime.builtin.IRubyObject safe_level();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
ldc "Thread-specific SAFE levels are not supported"
invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject backtrace(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
aconst_null
invokevirtual org.jruby.RubyThread.backtraceInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"backtrace"})
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject backtrace(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aconst_null
invokevirtual org.jruby.RubyThread.backtraceInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 level Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"backtrace"})
MethodParameters:
Name Flags
context
level
public org.jruby.runtime.builtin.IRubyObject backtrace(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokevirtual org.jruby.RubyThread.backtraceInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 level Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 length Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"backtrace"})
MethodParameters:
Name Flags
context
level
length
private org.jruby.runtime.builtin.IRubyObject backtraceInternal(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.jruby.RubyThread.getContext:()Lorg/jruby/runtime/ThreadContext;
astore 4
start local 4 1: aload 0
invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
astore 5
start local 5 2: aload 4
ifnull 3
aload 5
ifnull 3
aload 5
invokevirtual java.lang.Thread.isAlive:()Z
ifne 4
StackMap locals: org.jruby.runtime.ThreadContext java.lang.Thread
StackMap stack:
3: aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
4: StackMap locals:
StackMap stack:
aload 4
aload 2
aload 3
iconst_0
5: aload 0
invokedynamic apply(Lorg/jruby/RubyThread;)Lorg/jruby/util/func/ObjectIntIntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;II)Ljava/lang/Object;
org/jruby/RubyThread.lambda$0(Lorg/jruby/runtime/ThreadContext;II)Lorg/jruby/runtime/builtin/IRubyObject; (7)
(Lorg/jruby/runtime/ThreadContext;II)Lorg/jruby/runtime/builtin/IRubyObject;
6: invokestatic org.jruby.RubyKernel.withLevelAndLength:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;ILorg/jruby/util/func/ObjectIntIntFunction;)Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/RubyThread;
0 7 1 callerContext Lorg/jruby/runtime/ThreadContext;
0 7 2 level Lorg/jruby/runtime/builtin/IRubyObject;
0 7 3 length Lorg/jruby/runtime/builtin/IRubyObject;
1 7 4 context Lorg/jruby/runtime/ThreadContext;
2 7 5 nativeThread Ljava/lang/Thread;
MethodParameters:
Name Flags
callerContext
level
length
public org.jruby.runtime.builtin.IRubyObject backtrace_locations(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
aconst_null
invokevirtual org.jruby.RubyThread.backtraceLocationsInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject backtrace_locations(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aconst_null
invokevirtual org.jruby.RubyThread.backtraceLocationsInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 level Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
level
public org.jruby.runtime.builtin.IRubyObject backtrace_locations(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokevirtual org.jruby.RubyThread.backtraceLocationsInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 level Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 length Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
level
length
private org.jruby.runtime.builtin.IRubyObject backtraceLocationsInternal(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.jruby.RubyThread.getContext:()Lorg/jruby/runtime/ThreadContext;
astore 4
start local 4 1: aload 0
invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
astore 5
start local 5 2: aload 4
ifnull 3
aload 5
ifnull 3
aload 5
invokevirtual java.lang.Thread.isAlive:()Z
ifne 4
StackMap locals: org.jruby.runtime.ThreadContext java.lang.Thread
StackMap stack:
3: aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
4: StackMap locals:
StackMap stack:
aload 4
aload 2
aload 3
iconst_0
5: aload 0
invokedynamic apply(Lorg/jruby/RubyThread;)Lorg/jruby/util/func/ObjectIntIntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;II)Ljava/lang/Object;
org/jruby/RubyThread.lambda$2(Lorg/jruby/runtime/ThreadContext;II)Lorg/jruby/runtime/builtin/IRubyObject; (7)
(Lorg/jruby/runtime/ThreadContext;II)Lorg/jruby/runtime/builtin/IRubyObject;
6: invokestatic org.jruby.RubyKernel.withLevelAndLength:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;ILorg/jruby/util/func/ObjectIntIntFunction;)Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/RubyThread;
0 7 1 callerContext Lorg/jruby/runtime/ThreadContext;
0 7 2 level Lorg/jruby/runtime/builtin/IRubyObject;
0 7 3 length Lorg/jruby/runtime/builtin/IRubyObject;
1 7 4 context Lorg/jruby/runtime/ThreadContext;
2 7 5 nativeThread Ljava/lang/Thread;
MethodParameters:
Name Flags
callerContext
level
length
public org.jruby.runtime.builtin.IRubyObject report_on_exception_set(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifeq 3
1: aload 0
aload 2
putfield org.jruby.RubyThread.reportOnException:Lorg/jruby/runtime/builtin/IRubyObject;
2: goto 6
3: StackMap locals:
StackMap stack:
aload 0
aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
ifeq 4
aload 1
getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
goto 5
StackMap locals:
StackMap stack: org.jruby.RubyThread
4: aload 1
getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
StackMap stack: org.jruby.RubyThread org.jruby.RubyBoolean
5: putfield org.jruby.RubyThread.reportOnException:Lorg/jruby/runtime/builtin/IRubyObject;
6: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/RubyThread;
0 7 1 context Lorg/jruby/runtime/ThreadContext;
0 7 2 state Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"report_on_exception="})
MethodParameters:
Name Flags
context
state
public org.jruby.runtime.builtin.IRubyObject report_on_exception(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.RubyThread.reportOnException:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"report_on_exception"})
MethodParameters:
Name Flags
context
public static org.jruby.runtime.builtin.IRubyObject report_on_exception_set(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 1: aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifeq 4
2: aload 3
aload 2
invokevirtual org.jruby.Ruby.setReportOnException:(Lorg/jruby/runtime/builtin/IRubyObject;)V
3: goto 5
4: StackMap locals: org.jruby.Ruby
StackMap stack:
aload 3
aload 3
aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
invokevirtual org.jruby.Ruby.setReportOnException:(Lorg/jruby/runtime/builtin/IRubyObject;)V
5: StackMap locals:
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 context Lorg/jruby/runtime/ThreadContext;
0 6 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 6 2 state Lorg/jruby/runtime/builtin/IRubyObject;
1 6 3 runtime Lorg/jruby/Ruby;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"report_on_exception="}, meta = true)
MethodParameters:
Name Flags
context
self
state
public static org.jruby.runtime.builtin.IRubyObject report_on_exception(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getReportOnException:()Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 self Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"report_on_exception"}, meta = true)
MethodParameters:
Name Flags
context
self
public java.lang.StackTraceElement[] javaBacktrace();
descriptor: ()[Ljava/lang/StackTraceElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
instanceof org.jruby.internal.runtime.NativeThread
ifeq 2
1: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
checkcast org.jruby.internal.runtime.NativeThread
invokevirtual org.jruby.internal.runtime.NativeThread.getThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
areturn
2: StackMap locals:
StackMap stack:
getstatic org.jruby.runtime.backtrace.BacktraceData.EMPTY_STACK_TRACE:[Ljava/lang/StackTraceElement;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
private boolean isCurrent();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.isCurrent:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
public void exceptionRaised(org.jruby.exceptions.RaiseException);
descriptor: (Lorg/jruby/exceptions/RaiseException;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.jruby.RubyThread.exceptionRaised:(Ljava/lang/Throwable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
0 2 1 exception Lorg/jruby/exceptions/RaiseException;
MethodParameters:
Name Flags
exception
protected void printReportExceptionWarning();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
astore 1
start local 1 1: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokeinterface org.jruby.internal.runtime.ThreadLike.getReportName:()Ljava/lang/String;
astore 2
start local 2 2: aload 1
invokevirtual org.jruby.Ruby.getErrorStream:()Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "warning: thread \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\" terminated with exception (report_on_exception is true):"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/RubyThread;
1 4 1 runtime Lorg/jruby/Ruby;
2 4 2 name Ljava/lang/String;
public void exceptionRaised(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.jruby.exceptions.Unrescuable
ifeq 2
1: aload 1
invokestatic org.jruby.runtime.Helpers.throwException:(Ljava/lang/Throwable;)V
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
astore 2
start local 2 3: getstatic org.jruby.RubyThread.$assertionsDisabled:Z
ifne 4
aload 0
invokevirtual org.jruby.RubyThread.isCurrent:()Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: org.jruby.Ruby
StackMap stack:
aload 1
instanceof org.jruby.exceptions.RaiseException
ifeq 8
5: aload 1
checkcast org.jruby.exceptions.RaiseException
astore 4
start local 4 6: aload 4
invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
astore 3
end local 4 start local 3 7: goto 9
end local 3 8: StackMap locals:
StackMap stack:
aload 2
aload 1
invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 3
start local 3 9: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 2
invokevirtual org.jruby.Ruby.getSystemExit:()Lorg/jruby/RubyClass;
aload 3
invokevirtual org.jruby.RubyClass.isInstance:(Lorg/jruby/runtime/builtin/IRubyObject;)Z
ifeq 12
10: aload 2
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
invokevirtual org.jruby.internal.runtime.ThreadService.getMainThread:()Lorg/jruby/RubyThread;
aload 3
invokevirtual org.jruby.RubyThread.raise:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
11: goto 22
StackMap locals:
StackMap stack:
12: aload 0
getfield org.jruby.RubyThread.reportOnException:Lorg/jruby/runtime/builtin/IRubyObject;
invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
dup
istore 4
start local 4 13: ifne 14
aload 0
aload 2
invokevirtual org.jruby.RubyThread.abortOnException:(Lorg/jruby/Ruby;)Z
ifeq 20
14: StackMap locals: int
StackMap stack:
iload 4
ifeq 17
15: aload 0
invokevirtual org.jruby.RubyThread.printReportExceptionWarning:()V
16: aload 2
aload 1
invokevirtual org.jruby.Ruby.printError:(Ljava/lang/Throwable;)V
17: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.jruby.RubyThread.abortOnException:(Lorg/jruby/Ruby;)Z
ifeq 22
18: aload 2
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
invokevirtual org.jruby.internal.runtime.ThreadService.getMainThread:()Lorg/jruby/RubyThread;
aload 3
invokevirtual org.jruby.RubyThread.raise:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
19: goto 22
StackMap locals:
StackMap stack:
20: aload 2
invokevirtual org.jruby.Ruby.isDebug:()Z
ifeq 22
21: aload 2
aload 1
invokevirtual org.jruby.Ruby.printError:(Ljava/lang/Throwable;)V
end local 4 22: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.jruby.RubyThread.exitingException:Ljava/lang/Throwable;
23: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/jruby/RubyThread;
0 24 1 throwable Ljava/lang/Throwable;
3 24 2 runtime Lorg/jruby/Ruby;
7 8 3 rubyException Lorg/jruby/runtime/builtin/IRubyObject;
9 24 3 rubyException Lorg/jruby/runtime/builtin/IRubyObject;
6 7 4 exception Lorg/jruby/exceptions/RaiseException;
13 22 4 report Z
MethodParameters:
Name Flags
throwable
private boolean abortOnException(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.jruby.Ruby.isGlobalAbortOnExceptionEnabled:()Z
ifne 1
aload 0
getfield org.jruby.RubyThread.abortOnException:Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
0 2 1 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime
public static org.jruby.RubyThread mainThread(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyThread;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
invokevirtual org.jruby.internal.runtime.ThreadService.getMainThread:()Lorg/jruby/RubyThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 receiver Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
receiver
public boolean select(org.jruby.RubyIO, int);
descriptor: (Lorg/jruby/RubyIO;I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.jruby.RubyIO.getChannel:()Ljava/nio/channels/Channel;
aload 1
invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
iload 2
invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;I)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 io Lorg/jruby/RubyIO;
0 1 2 ops I
MethodParameters:
Name Flags
io
ops
public boolean select(org.jruby.RubyIO, int, long);
descriptor: (Lorg/jruby/RubyIO;IJ)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual org.jruby.RubyIO.getChannel:()Ljava/nio/channels/Channel;
aload 1
invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
iload 2
lload 3
invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;IJ)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 io Lorg/jruby/RubyIO;
0 1 2 ops I
0 1 3 timeout J
MethodParameters:
Name Flags
io
ops
timeout
public boolean select(java.nio.channels.Channel, org.jruby.util.io.OpenFile, int);
descriptor: (Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iload 3
ldc -1
invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;IJ)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 channel Ljava/nio/channels/Channel;
0 1 2 fptr Lorg/jruby/util/io/OpenFile;
0 1 3 ops I
MethodParameters:
Name Flags
channel
fptr
ops
public boolean select(java.nio.channels.Channel, org.jruby.RubyIO, int);
descriptor: (Ljava/nio/channels/Channel;Lorg/jruby/RubyIO;I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
ifnonnull 1
aconst_null
goto 2
StackMap locals: org.jruby.RubyThread java.nio.channels.Channel org.jruby.RubyIO int
StackMap stack: org.jruby.RubyThread java.nio.channels.Channel
1: aload 2
invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
StackMap locals: org.jruby.RubyThread java.nio.channels.Channel org.jruby.RubyIO int
StackMap stack: org.jruby.RubyThread java.nio.channels.Channel org.jruby.util.io.OpenFile
2: iload 3
ldc -1
invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;IJ)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
0 3 1 channel Ljava/nio/channels/Channel;
0 3 2 io Lorg/jruby/RubyIO;
0 3 3 ops I
MethodParameters:
Name Flags
channel
io
ops
public boolean select(java.nio.channels.Channel, org.jruby.RubyIO, int, long);
descriptor: (Ljava/nio/channels/Channel;Lorg/jruby/RubyIO;IJ)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
ifnonnull 1
aconst_null
goto 2
StackMap locals: org.jruby.RubyThread java.nio.channels.Channel org.jruby.RubyIO int long
StackMap stack: org.jruby.RubyThread java.nio.channels.Channel
1: aload 2
invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
StackMap locals: org.jruby.RubyThread java.nio.channels.Channel org.jruby.RubyIO int long
StackMap stack: org.jruby.RubyThread java.nio.channels.Channel org.jruby.util.io.OpenFile
2: iload 3
lload 4
invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;IJ)Z
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
0 3 1 channel Ljava/nio/channels/Channel;
0 3 2 io Lorg/jruby/RubyIO;
0 3 3 ops I
0 3 4 timeout J
MethodParameters:
Name Flags
channel
io
ops
timeout
public boolean select(java.nio.channels.Channel, org.jruby.util.io.OpenFile, int, long);
descriptor: (Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;IJ)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=17, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 2
invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
StackMap locals:
StackMap stack: org.jruby.util.io.ChannelFD
2: astore 6
start local 6 3: aload 1
instanceof java.nio.channels.SelectableChannel
ifeq 88
aload 6
ifnull 88
4: aload 1
checkcast java.nio.channels.SelectableChannel
astore 7
start local 7 5: iconst_0
istore 8
start local 8 6: aload 2
ifnull 9
7: aload 2
invokevirtual org.jruby.util.io.OpenFile.lock:()Z
istore 8
8: aload 2
invokevirtual org.jruby.util.io.OpenFile.unlock:()V
9: StackMap locals: org.jruby.util.io.ChannelFD java.nio.channels.SelectableChannel int
StackMap stack:
aload 7
invokevirtual java.nio.channels.SelectableChannel.blockingLock:()Ljava/lang/Object;
dup
astore 9
monitorenter
10: aload 7
invokevirtual java.nio.channels.SelectableChannel.isBlocking:()Z
istore 10
start local 10 11: aload 7
iconst_0
invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
12: aload 2
ifnull 13
aload 2
aload 0
invokevirtual org.jruby.util.io.OpenFile.addBlockingThread:(Lorg/jruby/RubyThread;)V
13: StackMap locals: java.lang.Object int
StackMap stack:
aload 0
aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getSelectorPool:()Lorg/jruby/util/io/SelectorPool;
aload 7
invokevirtual java.nio.channels.SelectableChannel.provider:()Ljava/nio/channels/spi/SelectorProvider;
invokevirtual org.jruby.util.io.SelectorPool.get:(Ljava/nio/channels/spi/SelectorProvider;)Ljava/nio/channels/Selector;
putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
14: aload 7
aload 0
getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
iload 3
invokevirtual java.nio.channels.SelectableChannel.register:(Ljava/nio/channels/Selector;I)Ljava/nio/channels/SelectionKey;
astore 11
start local 11 15: aload 0
invokevirtual org.jruby.RubyThread.beforeBlockingCall:()V
16: lload 4
lconst_0
lcmp
ifge 19
17: aload 0
getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.select:()I
istore 12
start local 12 18: goto 23
end local 12 StackMap locals: java.nio.channels.SelectionKey
StackMap stack:
19: lload 4
lconst_0
lcmp
ifne 22
20: aload 0
getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.selectNow:()I
istore 12
start local 12 21: goto 23
end local 12 22: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
lload 4
invokevirtual java.nio.channels.Selector.select:(J)I
istore 12
start local 12 23: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
24: iload 12
iconst_1
if_icmpne 45
25: aload 0
getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
invokevirtual java.nio.channels.Selector.selectedKeys:()Ljava/util/Set;
astore 13
start local 13 26: aload 13
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
aload 11
if_acmpne 45
27: aload 0
getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
ifnull 35
28: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getSelectorPool:()Lorg/jruby/util/io/SelectorPool;
aload 0
getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
invokevirtual org.jruby.util.io.SelectorPool.put:(Ljava/nio/channels/Selector;)V
29: goto 35
StackMap locals: org.jruby.RubyThread java.nio.channels.Channel org.jruby.util.io.OpenFile int long org.jruby.util.io.ChannelFD java.nio.channels.SelectableChannel int java.lang.Object int java.nio.channels.SelectionKey int java.util.Set
StackMap stack: java.lang.Exception
30: pop
31: aload 0
aconst_null
putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
goto 36
32: StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
33: aload 0
aconst_null
putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
34: aload 15
athrow
35: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
36: StackMap locals:
StackMap stack:
aload 2
ifnull 37
aload 2
aload 0
invokevirtual org.jruby.util.io.OpenFile.removeBlockingThread:(Lorg/jruby/RubyThread;)V
37: StackMap locals:
StackMap stack:
aload 7
iload 10
invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
38: goto 40
StackMap locals:
StackMap stack: java.lang.Exception
39: pop
40: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.afterBlockingCall:()V
aload 9
monitorexit
41: aload 2
ifnull 44
42: aload 2
invokevirtual org.jruby.util.io.OpenFile.lock:()Z
pop
43: iload 8
ifeq 44
aload 2
invokevirtual org.jruby.util.io.OpenFile.unlock:()V
44: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 13 45: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
ifnull 53
46: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getSelectorPool:()Lorg/jruby/util/io/SelectorPool;
aload 0
getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
invokevirtual org.jruby.util.io.SelectorPool.put:(Ljava/nio/channels/Selector;)V
47: goto 53
StackMap locals:
StackMap stack: java.lang.Exception
48: pop
49: aload 0
aconst_null
putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
goto 54
50: StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
51: aload 0
aconst_null
putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
52: aload 15
athrow
53: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
54: StackMap locals:
StackMap stack:
aload 2
ifnull 55
aload 2
aload 0
invokevirtual org.jruby.util.io.OpenFile.removeBlockingThread:(Lorg/jruby/RubyThread;)V
55: StackMap locals:
StackMap stack:
aload 7
iload 10
invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
56: goto 58
StackMap locals:
StackMap stack: java.lang.Exception
57: pop
58: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.afterBlockingCall:()V
aload 9
monitorexit
59: aload 2
ifnull 62
60: aload 2
invokevirtual org.jruby.util.io.OpenFile.lock:()Z
pop
61: iload 8
ifeq 62
aload 2
invokevirtual org.jruby.util.io.OpenFile.unlock:()V
62: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 12 end local 11 63: StackMap locals: org.jruby.RubyThread java.nio.channels.Channel org.jruby.util.io.OpenFile int long org.jruby.util.io.ChannelFD java.nio.channels.SelectableChannel int java.lang.Object int
StackMap stack: java.io.IOException
astore 12
start local 12 64: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
aload 12
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 12 65: StackMap locals:
StackMap stack: java.lang.Throwable
astore 14
66: aload 0
getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
ifnull 74
67: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getSelectorPool:()Lorg/jruby/util/io/SelectorPool;
aload 0
getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
invokevirtual org.jruby.util.io.SelectorPool.put:(Ljava/nio/channels/Selector;)V
68: goto 74
StackMap locals: org.jruby.RubyThread java.nio.channels.Channel org.jruby.util.io.OpenFile int long org.jruby.util.io.ChannelFD java.nio.channels.SelectableChannel int java.lang.Object int top top top java.lang.Throwable
StackMap stack: java.lang.Exception
69: pop
70: aload 0
aconst_null
putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
goto 75
71: StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
72: aload 0
aconst_null
putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
73: aload 15
athrow
74: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
75: StackMap locals:
StackMap stack:
aload 2
ifnull 76
aload 2
aload 0
invokevirtual org.jruby.util.io.OpenFile.removeBlockingThread:(Lorg/jruby/RubyThread;)V
76: StackMap locals:
StackMap stack:
aload 7
iload 10
invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
77: goto 79
StackMap locals:
StackMap stack: java.lang.Exception
78: pop
79: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.RubyThread.afterBlockingCall:()V
80: aload 14
athrow
end local 10 81: StackMap locals: org.jruby.RubyThread java.nio.channels.Channel org.jruby.util.io.OpenFile int long org.jruby.util.io.ChannelFD java.nio.channels.SelectableChannel int java.lang.Object
StackMap stack: java.lang.Throwable
aload 9
monitorexit
82: athrow
83: StackMap locals: org.jruby.RubyThread java.nio.channels.Channel org.jruby.util.io.OpenFile int long org.jruby.util.io.ChannelFD java.nio.channels.SelectableChannel int
StackMap stack: java.lang.Throwable
astore 16
84: aload 2
ifnull 87
85: aload 2
invokevirtual org.jruby.util.io.OpenFile.lock:()Z
pop
86: iload 8
ifeq 87
aload 2
invokevirtual org.jruby.util.io.OpenFile.unlock:()V
87: StackMap locals: org.jruby.RubyThread java.nio.channels.Channel org.jruby.util.io.OpenFile int long org.jruby.util.io.ChannelFD java.nio.channels.SelectableChannel int top top top top top top top java.lang.Throwable
StackMap stack:
aload 16
athrow
end local 8 end local 7 88: StackMap locals: org.jruby.RubyThread java.nio.channels.Channel org.jruby.util.io.OpenFile int long org.jruby.util.io.ChannelFD
StackMap stack:
iconst_1
ireturn
end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 89 0 this Lorg/jruby/RubyThread;
0 89 1 channel Ljava/nio/channels/Channel;
0 89 2 fptr Lorg/jruby/util/io/OpenFile;
0 89 3 ops I
0 89 4 timeout J
3 89 6 fd Lorg/jruby/util/io/ChannelFD;
5 88 7 selectable Ljava/nio/channels/SelectableChannel;
6 88 8 locked Z
11 81 10 oldBlocking Z
15 63 11 key Ljava/nio/channels/SelectionKey;
18 19 12 result I
21 22 12 result I
23 63 12 result I
26 45 13 keySet Ljava/util/Set<Ljava/nio/channels/SelectionKey;>;
64 65 12 ioe Ljava/io/IOException;
Exception table:
from to target type
27 29 30 Class java.lang.Exception
27 31 32 any
37 38 39 Class java.lang.Exception
45 47 48 Class java.lang.Exception
45 49 50 any
55 56 57 Class java.lang.Exception
11 27 63 Class java.io.IOException
11 27 65 any
63 65 65 any
66 68 69 Class java.lang.Exception
66 70 71 any
76 77 78 Class java.lang.Exception
10 41 81 any
45 59 81 any
63 82 81 any
9 41 83 any
45 59 83 any
63 83 83 any
MethodParameters:
Name Flags
channel
fptr
ops
timeout
public synchronized void interrupt();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.setInterrupt:()V
1: aload 0
getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
astore 1
start local 1 2: aload 1
ifnull 4
3: aload 1
invokevirtual java.nio.channels.Selector.wakeup:()Ljava/nio/channels/Selector;
pop
4: StackMap locals: java.nio.channels.Selector
StackMap stack:
aload 0
getfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
astore 2
start local 2 5: aload 2
ifnull 7
6: aload 2
invokevirtual org.jruby.util.io.BlockingIO$Condition.cancel:()V
7: StackMap locals: org.jruby.util.io.BlockingIO$Condition
StackMap stack:
aload 0
getfield org.jruby.RubyThread.unblockFunc:Lorg/jruby/RubyThread$Unblocker;
astore 3
start local 3 8: aload 3
ifnull 10
9: aload 3
aload 0
aload 0
getfield org.jruby.RubyThread.unblockArg:Ljava/lang/Object;
invokeinterface org.jruby.RubyThread$Unblocker.wakeup:(Lorg/jruby/RubyThread;Ljava/lang/Object;)V
10: StackMap locals: org.jruby.RubyThread$Unblocker
StackMap stack:
aload 0
getfield org.jruby.RubyThread.currentBlockingTask:Lorg/jruby/RubyThread$BlockingTask;
astore 4
start local 4 11: aload 4
ifnull 13
12: aload 4
invokeinterface org.jruby.RubyThread$BlockingTask.wakeup:()V
end local 4 13: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.notify:()V
14: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/jruby/RubyThread;
2 15 1 activeSelector Ljava/nio/channels/Selector;
5 15 2 iowait Lorg/jruby/util/io/BlockingIO$Condition;
8 15 3 task Lorg/jruby/RubyThread$Unblocker;
11 13 4 t Lorg/jruby/RubyThread$BlockingTask;
public void setInterrupt();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.interruptFlag:I
istore 1
start local 1 1: getstatic org.jruby.RubyThread.INTERRUPT_FLAG_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 1
iload 1
iconst_2
ior
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 0
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
1 3 1 oldFlag I
public boolean waitForIO(org.jruby.runtime.ThreadContext, org.jruby.RubyIO, int);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.jruby.RubyIO.getChannel:()Ljava/nio/channels/Channel;
astore 4
start local 4 1: aload 4
instanceof java.nio.channels.SelectableChannel
ifne 3
2: iconst_1
ireturn
3: StackMap locals: java.nio.channels.Channel
StackMap stack:
aload 2
aload 0
invokevirtual org.jruby.RubyIO.addBlockingThread:(Lorg/jruby/RubyThread;)V
4: aload 0
aload 4
iload 3
invokestatic org.jruby.util.io.BlockingIO.newCondition:(Ljava/nio/channels/Channel;I)Lorg/jruby/util/io/BlockingIO$Condition;
putfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
5: aload 0
getfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
invokevirtual org.jruby.util.io.BlockingIO$Condition.await:()Z
istore 5
start local 5 6: aload 0
aload 1
invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
7: iload 5
istore 7
8: aload 0
aconst_null
putfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
9: aload 2
aload 0
invokevirtual org.jruby.RubyIO.removeBlockingThread:(Lorg/jruby/RubyThread;)V
10: iload 7
ireturn
end local 5 11: StackMap locals:
StackMap stack: java.io.IOException
astore 5
start local 5 12: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "Error with selector: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newRuntimeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 5 13: StackMap locals:
StackMap stack: java.lang.InterruptedException
pop
14: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "Interrupted"
invokevirtual org.jruby.Ruby.newRuntimeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
16: aload 0
aconst_null
putfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
17: aload 2
aload 0
invokevirtual org.jruby.RubyIO.removeBlockingThread:(Lorg/jruby/RubyThread;)V
18: aload 6
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/jruby/RubyThread;
0 19 1 context Lorg/jruby/runtime/ThreadContext;
0 19 2 io Lorg/jruby/RubyIO;
0 19 3 ops I
1 19 4 channel Ljava/nio/channels/Channel;
6 11 5 ready Z
12 13 5 ioe Ljava/io/IOException;
Exception table:
from to target type
3 8 11 Class java.io.IOException
3 8 13 Class java.lang.InterruptedException
3 8 15 any
11 15 15 any
MethodParameters:
Name Flags
context
io
ops
public void beforeBlockingCall();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
1: aload 0
invokevirtual org.jruby.RubyThread.enterSleep:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
public void afterBlockingCall();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.RubyThread.exitSleep:()V
1: aload 0
invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
public boolean wait_timeout(org.jruby.runtime.builtin.IRubyObject, java.lang.Double);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/Double;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 10
1: aload 2
invokevirtual java.lang.Double.doubleValue:()D
ldc 1.0E9
dmul
d2l
lstore 3
start local 3 2: invokestatic java.lang.System.nanoTime:()J
lstore 5
start local 5 3: lload 3
lconst_0
lcmp
ifle 7
4: lload 3
ldc 1000000
ldiv
lstore 7
start local 7 5: lload 3
ldc 1000000
lrem
l2i
istore 9
start local 9 6: aload 0
new org.jruby.RubyThread$SleepTask
dup
aload 1
lload 7
iload 9
invokespecial org.jruby.RubyThread$SleepTask.<init>:(Ljava/lang/Object;JI)V
invokevirtual org.jruby.RubyThread.executeBlockingTask:(Lorg/jruby/RubyThread$BlockingTask;)V
end local 9 end local 7 7: StackMap locals: long long
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 7
start local 7 8: lload 7
lload 5
lsub
lload 3
lcmp
ifgt 9
iconst_1
ireturn
StackMap locals: long
StackMap stack:
9: iconst_0
ireturn
end local 7 end local 5 end local 3 10: StackMap locals:
StackMap stack:
aload 0
new org.jruby.RubyThread$SleepTask
dup
aload 1
lconst_0
iconst_0
invokespecial org.jruby.RubyThread$SleepTask.<init>:(Ljava/lang/Object;JI)V
invokevirtual org.jruby.RubyThread.executeBlockingTask:(Lorg/jruby/RubyThread$BlockingTask;)V
11: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/jruby/RubyThread;
0 12 1 o Lorg/jruby/runtime/builtin/IRubyObject;
0 12 2 timeout Ljava/lang/Double;
2 10 3 delay_ns J
3 10 5 start_ns J
5 7 7 delay_ms J
6 7 9 delay_ns_remainder I
8 10 7 end_ns J
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
o
timeout
public org.jruby.RubyThreadGroup getThreadGroup();
descriptor: ()Lorg/jruby/RubyThreadGroup;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.threadGroup:Lorg/jruby/RubyThreadGroup;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
if_acmpeq 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
checkcast org.jruby.RubyThread
astore 2
start local 2 5: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
aload 2
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
if_acmpeq 7
aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
getstatic org.jruby.internal.runtime.ThreadLike.DUMMY:Lorg/jruby/internal/runtime/ThreadLike;
if_acmpeq 6
aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
aload 2
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 7
6: StackMap locals: org.jruby.RubyThread
StackMap stack:
iconst_0
ireturn
7: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/RubyThread;
0 8 1 obj Ljava/lang/Object;
5 8 2 other Lorg/jruby/RubyThread;
MethodParameters:
Name Flags
obj
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: bipush 97
iconst_3
aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
getstatic org.jruby.internal.runtime.ThreadLike.DUMMY:Lorg/jruby/internal/runtime/ThreadLike;
if_acmpeq 1
aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokevirtual java.lang.Object.hashCode:()I
goto 2
StackMap locals: org.jruby.RubyThread
StackMap stack: int int
1: iconst_0
StackMap locals: org.jruby.RubyThread
StackMap stack: int int int
2: iadd
imul
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
public void lock(java.util.concurrent.locks.Lock);
descriptor: (Ljava/util/concurrent/locks/Lock;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.jruby.RubyThread.$assertionsDisabled:Z
ifne 1
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 0
getfield org.jruby.RubyThread.heldLocks:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/RubyThread;
0 4 1 lock Ljava/util/concurrent/locks/Lock;
MethodParameters:
Name Flags
lock
public void lockInterruptibly(java.util.concurrent.locks.Lock);
descriptor: (Ljava/util/concurrent/locks/Lock;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.jruby.RubyThread.$assertionsDisabled:Z
ifne 1
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual org.jruby.RubyThread.getContext:()Lorg/jruby/runtime/ThreadContext;
aload 1
new org.jruby.RubyThread$2
dup
aload 0
aload 1
invokespecial org.jruby.RubyThread$2.<init>:(Lorg/jruby/RubyThread;Ljava/util/concurrent/locks/Lock;)V
invokevirtual org.jruby.RubyThread.executeTask:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/RubyThread$Task;)Ljava/lang/Object;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
0 3 1 lock Ljava/util/concurrent/locks/Lock;
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
lock
public boolean tryLock(java.util.concurrent.locks.Lock);
descriptor: (Ljava/util/concurrent/locks/Lock;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.jruby.RubyThread.$assertionsDisabled:Z
ifne 1
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.concurrent.locks.Lock.tryLock:()Z
istore 2
start local 2 2: iload 2
ifeq 4
3: aload 0
getfield org.jruby.RubyThread.heldLocks:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/RubyThread;
0 5 1 lock Ljava/util/concurrent/locks/Lock;
2 5 2 locked Z
MethodParameters:
Name Flags
lock
public void unlock(java.util.concurrent.locks.Lock);
descriptor: (Ljava/util/concurrent/locks/Lock;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.jruby.RubyThread.$assertionsDisabled:Z
ifne 1
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
2: aload 0
getfield org.jruby.RubyThread.heldLocks:Ljava/util/List;
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/RubyThread;
0 4 1 lock Ljava/util/concurrent/locks/Lock;
MethodParameters:
Name Flags
lock
public void unlockAll();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: getstatic org.jruby.RubyThread.$assertionsDisabled:Z
ifne 1
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyThread.heldLocks:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 7
StackMap locals: org.jruby.RubyThread top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.concurrent.locks.Lock
astore 1
start local 1 3: aload 1
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
4: goto 7
StackMap locals: org.jruby.RubyThread java.util.concurrent.locks.Lock java.util.Iterator
StackMap stack: java.lang.IllegalMonitorStateException
5: pop
6: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
new java.lang.StringBuilder
dup
ldc "BUG: attempted to unlock a non-acquired lock "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " in thread "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.jruby.RubyThread.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
end local 1 7: StackMap locals: org.jruby.RubyThread top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/jruby/RubyThread;
3 7 1 lock Ljava/util/concurrent/locks/Lock;
Exception table:
from to target type
3 4 5 Class java.lang.IllegalMonitorStateException
public void sleep(java.util.concurrent.locks.Lock);
descriptor: (Ljava/util/concurrent/locks/Lock;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
lconst_0
invokevirtual org.jruby.RubyThread.sleep:(Ljava/util/concurrent/locks/Lock;J)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyThread;
0 2 1 lock Ljava/util/concurrent/locks/Lock;
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
lock
public void sleep(java.util.concurrent.locks.Lock, long);
descriptor: (Ljava/util/concurrent/locks/Lock;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.jruby.RubyThread.$assertionsDisabled:Z
ifne 1
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual org.jruby.RubyThread.getContext:()Lorg/jruby/runtime/ThreadContext;
aload 1
invokeinterface java.util.concurrent.locks.Lock.newCondition:()Ljava/util/concurrent/locks/Condition;
getstatic org.jruby.RubyThread$Status.NATIVE:Lorg/jruby/RubyThread$Status;
new org.jruby.RubyThread$3
dup
aload 0
lload 2
invokespecial org.jruby.RubyThread$3.<init>:(Lorg/jruby/RubyThread;J)V
invokevirtual org.jruby.RubyThread.executeTask:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/RubyThread$Status;Lorg/jruby/RubyThread$Task;)Ljava/lang/Object;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
0 3 1 lock Ljava/util/concurrent/locks/Lock;
0 3 2 millis J
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
lock
millis
private java.lang.String identityString();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
public static org.jruby.runtime.builtin.IRubyObject exclusive(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
ldc "warn"
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "Thread.exclusive is deprecated, use Thread::Mutex"
invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
1: aload 0
aload 1
checkcast org.jruby.RubyClass
invokestatic org.jruby.RubyThread.getMutexForThreadExclusive:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;)Lorg/jruby/ext/thread/Mutex;
aload 0
aload 2
invokevirtual org.jruby.ext.thread.Mutex.synchronize:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Lorg/jruby/runtime/ThreadContext;
0 2 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 2 2 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
recv
block
private static org.jruby.ext.thread.Mutex getMutexForThreadExclusive(org.jruby.runtime.ThreadContext, org.jruby.RubyClass);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;)Lorg/jruby/ext/thread/Mutex;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ldc "MUTEX_FOR_THREAD_EXCLUSIVE"
iconst_0
iconst_0
invokevirtual org.jruby.RubyClass.getConstantNoConstMissing:(Ljava/lang/String;ZZ)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.ext.thread.Mutex
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
areturn
2: StackMap locals: org.jruby.ext.thread.Mutex
StackMap stack:
aload 1
dup
astore 3
monitorenter
3: aload 1
ldc "MUTEX_FOR_THREAD_EXCLUSIVE"
iconst_0
iconst_0
invokevirtual org.jruby.RubyClass.getConstantNoConstMissing:(Ljava/lang/String;ZZ)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.ext.thread.Mutex
astore 2
4: aload 2
ifnonnull 7
5: aload 0
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getThread:()Lorg/jruby/RubyClass;
ldc "Mutex"
invokevirtual org.jruby.RubyClass.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
getstatic org.jruby.RubyThread.NULL_ARRAY:[Lorg/jruby/RubyHash;
getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
invokestatic org.jruby.ext.thread.Mutex.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/ext/thread/Mutex;
astore 2
6: aload 1
ldc "MUTEX_FOR_THREAD_EXCLUSIVE"
aload 2
iconst_1
invokevirtual org.jruby.RubyClass.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
pop
7: StackMap locals: org.jruby.RubyClass
StackMap stack:
aload 2
aload 3
monitorexit
8: areturn
9: StackMap locals:
StackMap stack: java.lang.Throwable
aload 3
monitorexit
10: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 context Lorg/jruby/runtime/ThreadContext;
0 11 1 recv Lorg/jruby/RubyClass;
1 11 2 mutex Lorg/jruby/ext/thread/Mutex;
Exception table:
from to target type
3 8 9 any
9 10 9 any
MethodParameters:
Name Flags
context
recv
public void internalRaise(org.jruby.runtime.builtin.IRubyObject[]);
descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
astore 2
start local 2 1: aload 0
aload 2
aload 2
invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
aload 1
invokevirtual org.jruby.RubyThread.genericRaise:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyThread;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyThread;
0 3 1 args [Lorg/jruby/runtime/builtin/IRubyObject;
1 3 2 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
args
public void receiveMail(org.jruby.internal.runtime.ThreadService$Event);
descriptor: (Lorg/jruby/internal/runtime/ThreadService$Event;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 event Lorg/jruby/internal/runtime/ThreadService$Event;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
event
public void checkMail(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
public boolean selectForAccept(org.jruby.RubyIO);
descriptor: (Lorg/jruby/RubyIO;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
bipush 16
invokevirtual org.jruby.RubyThread.select:(Lorg/jruby/RubyIO;I)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 io Lorg/jruby/RubyIO;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
io
public org.jruby.runtime.builtin.IRubyObject backtrace20(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.jruby.RubyThread.backtrace:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
args
public org.jruby.runtime.builtin.IRubyObject backtrace(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
tableswitch { // 0 - 2
0: 1
1: 2
2: 3
default: 4
}
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.jruby.RubyThread.backtrace:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iconst_0
aaload
invokevirtual org.jruby.RubyThread.backtrace:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iconst_0
aaload
aload 2
iconst_1
aaload
invokevirtual org.jruby.RubyThread.backtrace:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
4: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
iconst_0
iconst_2
invokestatic org.jruby.runtime.Arity.checkArgumentCount:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;II)I
pop
5: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/RubyThread;
0 6 1 context Lorg/jruby/runtime/ThreadContext;
0 6 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
args
public org.jruby.runtime.builtin.IRubyObject backtrace_locations(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
tableswitch { // 0 - 2
0: 1
1: 2
2: 3
default: 4
}
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.jruby.RubyThread.backtrace_locations:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iconst_0
aaload
invokevirtual org.jruby.RubyThread.backtrace_locations:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iconst_0
aaload
aload 2
iconst_1
aaload
invokevirtual org.jruby.RubyThread.backtrace_locations:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
4: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
iconst_0
iconst_2
invokestatic org.jruby.runtime.Arity.checkArgumentCount:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;II)I
pop
5: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/RubyThread;
0 6 1 context Lorg/jruby/runtime/ThreadContext;
0 6 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
args
public static org.jruby.runtime.builtin.IRubyObject pass(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
astore 1
start local 1 1: aload 1
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 0
invokestatic org.jruby.RubyThread.pass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
1 2 1 runtime Lorg/jruby/Ruby;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
recv
static int[] $SWITCH_TABLE$java$lang$Thread$State();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.jruby.RubyThread.$SWITCH_TABLE$java$lang$Thread$State:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic java.lang.Thread$State.values:()[Ljava/lang/Thread$State;
arraylength
newarray 10
astore 0
2: aload 0
getstatic java.lang.Thread$State.BLOCKED:Ljava/lang/Thread$State;
invokevirtual java.lang.Thread$State.ordinal:()I
iconst_3
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic java.lang.Thread$State.NEW:Ljava/lang/Thread$State;
invokevirtual java.lang.Thread$State.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic java.lang.Thread$State.RUNNABLE:Ljava/lang/Thread$State;
invokevirtual java.lang.Thread$State.ordinal:()I
iconst_2
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic java.lang.Thread$State.TERMINATED:Ljava/lang/Thread$State;
invokevirtual java.lang.Thread$State.ordinal:()I
bipush 6
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic java.lang.Thread$State.TIMED_WAITING:Ljava/lang/Thread$State;
invokevirtual java.lang.Thread$State.ordinal:()I
iconst_5
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic java.lang.Thread$State.WAITING:Ljava/lang/Thread$State;
invokevirtual java.lang.Thread$State.ordinal:()I
iconst_4
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
dup
putstatic org.jruby.RubyThread.$SWITCH_TABLE$java$lang$Thread$State:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
private org.jruby.runtime.builtin.IRubyObject lambda$0(org.jruby.runtime.ThreadContext, int, int);
descriptor: (Lorg/jruby/runtime/ThreadContext;II)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.jruby.RubyThread.WALKER:Lcom/headius/backport9/stack/StackWalker;
aload 0
invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
aload 1
iload 2
iload 3
invokedynamic apply(Lorg/jruby/runtime/ThreadContext;II)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/jruby/RubyThread.lambda$1(Lorg/jruby/runtime/ThreadContext;IILjava/util/stream/Stream;)Lorg/jruby/runtime/builtin/IRubyObject; (6)
(Ljava/util/stream/Stream;)Lorg/jruby/runtime/builtin/IRubyObject;
invokeinterface com.headius.backport9.stack.StackWalker.walk:([Ljava/lang/StackTraceElement;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 ctx Lorg/jruby/runtime/ThreadContext;
0 1 2 lev I
0 1 3 len I
private org.jruby.runtime.builtin.IRubyObject lambda$2(org.jruby.runtime.ThreadContext, int, int);
descriptor: (Lorg/jruby/runtime/ThreadContext;II)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.jruby.RubyThread.WALKER:Lcom/headius/backport9/stack/StackWalker;
aload 0
invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
aload 1
iload 2
iload 3
invokedynamic apply(Lorg/jruby/runtime/ThreadContext;II)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/jruby/RubyThread.lambda$3(Lorg/jruby/runtime/ThreadContext;IILjava/util/stream/Stream;)Lorg/jruby/runtime/builtin/IRubyObject; (6)
(Ljava/util/stream/Stream;)Lorg/jruby/runtime/builtin/IRubyObject;
invokeinterface com.headius.backport9.stack.StackWalker.walk:([Ljava/lang/StackTraceElement;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyThread;
0 1 1 ctx Lorg/jruby/runtime/ThreadContext;
0 1 2 lev I
0 1 3 len I
private static org.jruby.runtime.builtin.IRubyObject lambda$1(org.jruby.runtime.ThreadContext, int, int, java.util.stream.Stream);
descriptor: (Lorg/jruby/runtime/ThreadContext;IILjava/util/stream/Stream;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
start local 3 0: aload 0
iload 1
iload 2
aload 3
invokevirtual org.jruby.runtime.ThreadContext.createCallerBacktrace:(IILjava/util/stream/Stream;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 LocalVariableTable:
Start End Slot Name Signature
0 1 3 stream Ljava/util/stream/Stream<Lcom/headius/backport9/stack/StackWalker$StackFrame;>;
private static org.jruby.runtime.builtin.IRubyObject lambda$3(org.jruby.runtime.ThreadContext, int, int, java.util.stream.Stream);
descriptor: (Lorg/jruby/runtime/ThreadContext;IILjava/util/stream/Stream;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
start local 3 0: aload 0
iload 1
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 3
invokevirtual org.jruby.runtime.ThreadContext.createCallerLocations:(ILjava/lang/Integer;Ljava/util/stream/Stream;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 LocalVariableTable:
Start End Slot Name Signature
0 1 3 stream Ljava/util/stream/Stream<Lcom/headius/backport9/stack/StackWalker$StackFrame;>;
}
SourceFile: "RubyThread.java"
NestMembers:
org.jruby.RubyThread$1 org.jruby.RubyThread$2 org.jruby.RubyThread$3 org.jruby.RubyThread$BlockingTask org.jruby.RubyThread$Location org.jruby.RubyThread$SleepTask org.jruby.RubyThread$SleepTask2 org.jruby.RubyThread$Status org.jruby.RubyThread$Task org.jruby.RubyThread$Unblocker
InnerClasses:
public abstract StackFrame = com.headius.backport9.stack.StackWalker$StackFrame of com.headius.backport9.stack.StackWalker
public final State = java.lang.Thread$State of java.lang.Thread
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
public abstract VisitorWithState = org.jruby.RubyHash$VisitorWithState of org.jruby.RubyHash
org.jruby.RubyThread$1
org.jruby.RubyThread$2
org.jruby.RubyThread$3
public abstract BlockingTask = org.jruby.RubyThread$BlockingTask of org.jruby.RubyThread
public Location = org.jruby.RubyThread$Location of org.jruby.RubyThread
public final SleepTask = org.jruby.RubyThread$SleepTask of org.jruby.RubyThread
private SleepTask2 = org.jruby.RubyThread$SleepTask2 of org.jruby.RubyThread
public final Status = org.jruby.RubyThread$Status of org.jruby.RubyThread
public abstract Task = org.jruby.RubyThread$Task of org.jruby.RubyThread
public abstract Unblocker = org.jruby.RubyThread$Unblocker of org.jruby.RubyThread
public final ID = org.jruby.common.IRubyWarnings$ID of org.jruby.common.IRubyWarnings
public Event = org.jruby.internal.runtime.ThreadService$Event of org.jruby.internal.runtime.ThreadService
public final Condition = org.jruby.util.io.BlockingIO$Condition of org.jruby.util.io.BlockingIO
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyClass(name = {"Thread"})