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: .line 109
            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: .line 111
            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: .line 114
            getstatic org.jruby.runtime.ThreadContext.WALKER:Lcom/headius/backport9/stack/StackWalker;
            putstatic org.jruby.RubyThread.WALKER:Lcom/headius/backport9/stack/StackWalker;
         5: .line 210
            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: .line 209
            putstatic org.jruby.RubyThread.INTERRUPT_FLAG_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
         7: .line 645
            iconst_0
            anewarray org.jruby.RubyHash
            putstatic org.jruby.RubyThread.NULL_ARRAY:[Lorg/jruby/RubyHash;
         8: .line 768
            new org.jruby.RubyThread$1
            dup
            invokespecial org.jruby.RubyThread$1.<init>:()V
            putstatic org.jruby.RubyThread.HandleInterruptVisitor:Lorg/jruby/RubyHash$VisitorWithState;
         9: .line 2257
            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 // org.jruby.RubyThread this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass type
         0: .line 223
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* type */
            invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 117
            aload 0 /* this */
            getstatic org.jruby.internal.runtime.ThreadLike.DUMMY:Lorg/jruby/internal/runtime/ThreadLike;
            putfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
         2: .line 126
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            putfield org.jruby.RubyThread.contextVariables:Ljava/util/Map;
         3: .line 159
            aload 0 /* this */
            new java.util.Vector
            dup
            iconst_4
            invokespecial java.util.Vector.<init>:(I)V
            putfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
         4: .line 162
            aload 0 /* this */
            new org.jruby.RubyThread$SleepTask2
            dup
            invokespecial org.jruby.RubyThread$SleepTask2.<init>:()V
            putfield org.jruby.RubyThread.sleepTask:Lorg/jruby/RubyThread$SleepTask2;
         5: .line 179
            aload 0 /* this */
            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: .line 182
            aload 0 /* this */
            new java.util.concurrent.ConcurrentLinkedQueue
            dup
            invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
            putfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
         7: .line 191
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield org.jruby.RubyThread.heldLocks:Ljava/util/List;
         8: .line 194
            aload 0 /* this */
            iconst_0
            putfield org.jruby.RubyThread.disposed:Z
         9: .line 197
            aload 0 /* this */
            iconst_0
            putfield org.jruby.RubyThread.interruptFlag:I
        10: .line 203
            aload 0 /* this */
            iconst_0
            putfield org.jruby.RubyThread.pendingInterruptQueueChecked:Z
        11: .line 2063
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
        12: .line 225
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* runtime */
            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: .line 226
            aload 0 /* this */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getReportOnException:()Lorg/jruby/runtime/builtin/IRubyObject;
            putfield org.jruby.RubyThread.reportOnException:Lorg/jruby/runtime/builtin/IRubyObject;
        14: .line 227
            return
        end local 2 // org.jruby.RubyClass type
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass klass
        start local 3 // java.lang.Runnable runnable
         0: .line 230
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* klass */
            invokespecial org.jruby.RubyThread.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 232
            aload 0 /* this */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 3 /* runnable */
            invokevirtual org.jruby.RubyThread.startThread:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Runnable;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         2: .line 233
            return
        end local 3 // java.lang.Runnable runnable
        end local 2 // org.jruby.RubyClass klass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // boolean blockingTiming
         0: .line 236
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 241
            goto 23
        start local 4 // int interrupt
         2: .line 243
      StackMap locals: org.jruby.Ruby int
      StackMap stack:
            iload 4 /* interrupt */
            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 /* pendingInterrupt */
        start local 5 // boolean pendingInterrupt
         5: .line 250
            iload 5 /* pendingInterrupt */
            ifeq 23
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pendingInterruptActive:()Z
            ifeq 23
         6: .line 251
            aload 0 /* this */
            aload 1 /* context */
            iload 2 /* blockingTiming */
            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 /* err */
        start local 6 // org.jruby.runtime.builtin.IRubyObject err
         9: .line 253
            aload 6 /* err */
            getstatic org.jruby.RubyThread.UNDEF:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 23
        10: .line 255
            aload 6 /* err */
            instanceof org.jruby.RubyFixnum
            ifeq 15
            aload 6 /* err */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            lconst_0
            lcmp
            ifeq 13
        11: .line 256
            aload 6 /* err */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            lconst_1
            lcmp
            ifeq 13
        12: .line 257
            aload 6 /* err */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            ldc 2
            lcmp
            ifne 15
        13: .line 258
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.toKill:()V
        14: .line 259
            goto 23
        15: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.afterBlockingCall:()V
        16: .line 261
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
            getstatic org.jruby.RubyThread$Status.SLEEP:Lorg/jruby/RubyThread$Status;
            if_acmpne 18
        17: .line 262
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
        18: .line 266
      StackMap locals:
      StackMap stack:
            aload 6 /* err */
            instanceof org.jruby.RubyException
            ifeq 21
        19: .line 267
            aload 6 /* err */
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 3 /* runtime */
            ldc "cause"
            aload 6 /* err */
            checkcast org.jruby.RubyException
            aload 1 /* context */
            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 /* args */
        start local 7 // org.jruby.runtime.builtin.IRubyObject[] args
        20: .line 268
            goto 22
        end local 7 // org.jruby.runtime.builtin.IRubyObject[] args
        21: .line 269
      StackMap locals:
      StackMap stack:
            aload 6 /* err */
            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 /* args */
        start local 7 // org.jruby.runtime.builtin.IRubyObject[] args
        22: .line 271
      StackMap locals: org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack:
            aload 1 /* context */
            aload 0 /* this */
            aload 7 /* args */
            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 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 6 // org.jruby.runtime.builtin.IRubyObject err
        end local 5 // boolean pendingInterrupt
        end local 4 // int interrupt
        23: .line 241
      StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext int org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getInterrupts:()I
            dup
            istore 4 /* interrupt */
        start local 4 // int interrupt
        24: ifne 2
        25: .line 277
            return
        end local 4 // int interrupt
        end local 3 // org.jruby.Ruby runtime
        end local 2 // boolean blockingTiming
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 286
            return
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 289
            aload 0 /* this */
            getfield org.jruby.RubyThread.pendingInterruptQueueChecked:Z
            ifeq 1
            iconst_0
            ireturn
         1: .line 290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 2
            iconst_0
            ireturn
         2: .line 291
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 295
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pendingInterruptClear:()V
         1: .line 296
            aload 0 /* this */
            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: .line 297
            invokestatic org.jruby.RubyThread.throwThreadKill:()V
         3: .line 298
            return
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 301
            aload 0 /* this */
            getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.clear:()V
         1: .line 302
            return
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.interruptFlag:I
            istore 1 /* interrupt */
        start local 1 // int interrupt
         1: .line 308
            getstatic org.jruby.RubyThread.INTERRUPT_FLAG_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iload 1 /* interrupt */
            iload 1 /* interrupt */
            aload 0 /* this */
            getfield org.jruby.RubyThread.interruptMask:I
            iand
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 0
         2: .line 312
            iload 1 /* interrupt */
            aload 0 /* this */
            getfield org.jruby.RubyThread.interruptMask:I
            iconst_m1
            ixor
            iand
            ireturn
        end local 1 // int interrupt
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // int timing
         0: .line 316
            aload 0 /* this */
            getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
            astore 3 /* iterator */
        start local 3 // java.util.Iterator iterator
         1: goto 8
         2: .line 317
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 3 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject
            astore 4 /* err */
        start local 4 // org.jruby.runtime.builtin.IRubyObject err
         3: .line 318
            aload 0 /* this */
            aload 1 /* context */
            aload 4 /* err */
            invokevirtual org.jruby.RubyThread.pendingInterruptCheckMask:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 5 /* maskTiming */
        start local 5 // int maskTiming
         4: .line 320
            iload 5 /* maskTiming */
            tableswitch { // 0 - 3
                    0: 6
                    1: 6
                    2: 5
                    3: 8
              default: 8
          }
         5: .line 322
      StackMap locals: org.jruby.runtime.builtin.IRubyObject int
      StackMap stack:
            iload 2 /* timing */
            iconst_2
            if_icmpeq 6
            goto 8
         6: .line 325
      StackMap locals:
      StackMap stack:
            aload 3 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
         7: .line 326
            aload 4 /* err */
            areturn
        end local 5 // int maskTiming
        end local 4 // org.jruby.runtime.builtin.IRubyObject err
         8: .line 316
      StackMap locals:
      StackMap stack:
            aload 3 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        end local 3 // java.util.Iterator iterator
         9: .line 332
            aload 0 /* this */
            iconst_1
            putfield org.jruby.RubyThread.pendingInterruptQueueChecked:Z
        10: .line 334
            getstatic org.jruby.RubyThread.UNDEF:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // int timing
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject err
         0: .line 338
            aload 0 /* this */
            getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            istore 3 /* idx */
        start local 3 // int idx
         1: .line 339
            iload 3 /* idx */
            ifne 2
            iconst_0
            ireturn
         2: .line 341
      StackMap locals: int
      StackMap stack:
            aload 2 /* err */
            invokestatic org.jruby.RubyThread.getMetaClass:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.getAncestorList:()Ljava/util/List;
            astore 4 /* ancestors */
        start local 4 // java.util.List ancestors
         3: .line 342
            aload 4 /* ancestors */
            invokeinterface java.util.List.size:()I
            istore 5 /* ancestorsLen */
        start local 5 // int ancestorsLen
         4: .line 344
            goto 14
         5: .line 345
      StackMap locals: java.util.List int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
            iload 3 /* idx */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            checkcast org.jruby.RubyHash
            astore 6 /* mask */
        start local 6 // org.jruby.RubyHash mask
         6: .line 347
            iconst_0
            istore 7 /* j */
        start local 7 // int j
         7: goto 13
         8: .line 348
      StackMap locals: org.jruby.RubyHash int
      StackMap stack:
            aload 4 /* ancestors */
            iload 7 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject
            astore 8 /* klass */
        start local 8 // org.jruby.runtime.builtin.IRubyObject klass
         9: .line 351
            aload 6 /* mask */
            aload 1 /* context */
            aload 8 /* klass */
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 9 /* sym */
        start local 9 // org.jruby.runtime.builtin.IRubyObject sym
        10: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 12
        11: .line 352
            aload 1 /* context */
            aload 9 /* sym */
            invokestatic org.jruby.RubyThread.checkInterruptMask:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
            ireturn
        end local 9 // org.jruby.runtime.builtin.IRubyObject sym
        end local 8 // org.jruby.runtime.builtin.IRubyObject klass
        12: .line 347
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        13: iload 7 /* j */
            iload 5 /* ancestorsLen */
            if_icmplt 8
        end local 7 // int j
        end local 6 // org.jruby.RubyHash mask
        14: .line 344
      StackMap locals:
      StackMap stack:
            iinc 3 /* idx */ -1
            iload 3 /* idx */
            ifge 5
        15: .line 356
            iconst_0
            ireturn
        end local 5 // int ancestorsLen
        end local 4 // java.util.List ancestors
        end local 3 // int idx
        end local 2 // org.jruby.runtime.builtin.IRubyObject err
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 360
            aload 0 /* this */
            getfield org.jruby.RubyThread.errorInfo:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject errorInfo
         0: .line 364
            aload 0 /* this */
            aload 1 /* errorInfo */
            putfield org.jruby.RubyThread.errorInfo:Lorg/jruby/runtime/builtin/IRubyObject;
         1: .line 365
            aload 1 /* errorInfo */
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject errorInfo
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 369
            aload 0 /* this */
            new java.lang.ref.WeakReference
            dup
            aload 1 /* context */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            putfield org.jruby.RubyThread.contextRef:Ljava/lang/ref/WeakReference;
         1: .line 370
            return
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 373
            aload 0 /* this */
            getfield org.jruby.RubyThread.contextRef:Ljava/lang/ref/WeakReference;
            astore 1 /* contextRef */
        start local 1 // java.lang.ref.WeakReference contextRef
         1: .line 374
            aload 1 /* contextRef */
            ifnull 4
         2: .line 375
            aload 1 /* contextRef */
            invokevirtual java.lang.ref.WeakReference.clear:()V
         3: .line 376
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.contextRef:Ljava/lang/ref/WeakReference;
         4: .line 378
      StackMap locals: java.lang.ref.WeakReference
      StackMap stack:
            return
        end local 1 // java.lang.ref.WeakReference contextRef
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 381
            aload 0 /* this */
            getfield org.jruby.RubyThread.contextRef:Ljava/lang/ref/WeakReference;
            astore 1 /* contextRef */
        start local 1 // java.lang.ref.WeakReference contextRef
         1: .line 382
            aload 1 /* contextRef */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: java.lang.ref.WeakReference
      StackMap stack:
         2: aload 1 /* contextRef */
            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 // java.lang.ref.WeakReference contextRef
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 386
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.nativeThread:()Ljava/lang/Thread;
            areturn
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.RubyThread fiberCurrentThread
         0: .line 390
            aload 0 /* this */
            aload 1 /* fiberCurrentThread */
            putfield org.jruby.RubyThread.fiberCurrentThread:Lorg/jruby/RubyThread;
         1: .line 391
            return
        end local 1 // org.jruby.RubyThread fiberCurrentThread
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 394
            aload 0 /* this */
            getfield org.jruby.RubyThread.fiberCurrentThread:Lorg/jruby/RubyThread;
            astore 1 /* fiberCurrentThread */
        start local 1 // org.jruby.RubyThread fiberCurrentThread
         1: .line 395
            aload 1 /* fiberCurrentThread */
            ifnonnull 2
            aload 0 /* this */
            goto 3
      StackMap locals: org.jruby.RubyThread
      StackMap stack:
         2: aload 1 /* fiberCurrentThread */
      StackMap locals:
      StackMap stack: org.jruby.RubyThread
         3: areturn
        end local 1 // org.jruby.RubyThread fiberCurrentThread
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 403
            return
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 409
            aload 0 /* this */
            getfield org.jruby.RubyThread.disposed:Z
            ifeq 1
            return
         1: .line 411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 412
            aload 0 /* this */
            getfield org.jruby.RubyThread.disposed:Z
            ifeq 4
            aload 1
            monitorexit
         3: return
         4: .line 414
      StackMap locals: org.jruby.RubyThread
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.jruby.RubyThread.disposed:Z
         5: .line 417
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadGroup:Lorg/jruby/RubyThreadGroup;
            aload 0 /* this */
            invokevirtual org.jruby.RubyThreadGroup.remove:(Lorg/jruby/RubyThread;)V
         6: .line 420
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.unlockAll:()V
         7: .line 423
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.beDead:()V
         8: .line 411
            aload 1
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 1
            monitorexit
        11: athrow
        12: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
            aload 0 /* this */
            invokevirtual org.jruby.internal.runtime.ThreadService.unregisterThread:(Lorg/jruby/RubyThread;)V
        13: .line 428
            return
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.Ruby runtime
         0: .line 434
            aload 0 /* runtime */
            ldc "Thread"
            aload 0 /* runtime */
            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 /* threadClass */
        start local 1 // org.jruby.RubyClass threadClass
         1: .line 436
            aload 1 /* threadClass */
            getstatic org.jruby.runtime.ClassIndex.THREAD:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.RubyClass.setClassIndex:(Lorg/jruby/runtime/ClassIndex;)V
         2: .line 437
            aload 1 /* threadClass */
            ldc Lorg/jruby/RubyThread;
            invokevirtual org.jruby.RubyClass.setReifiedClass:(Ljava/lang/Class;)V
         3: .line 439
            aload 1 /* threadClass */
            ldc Lorg/jruby/RubyThread;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         4: .line 441
            new org.jruby.RubyThread
            dup
            aload 0 /* runtime */
            aload 1 /* threadClass */
            invokespecial org.jruby.RubyThread.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
            astore 2 /* rubyThread */
        start local 2 // org.jruby.RubyThread rubyThread
         5: .line 443
            aload 2 /* rubyThread */
            new org.jruby.internal.runtime.NativeThread
            dup
            aload 2 /* rubyThread */
            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: .line 444
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 2 /* rubyThread */
            invokevirtual org.jruby.internal.runtime.ThreadService.setMainThread:(Ljava/lang/Thread;Lorg/jruby/RubyThread;)V
         7: .line 447
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getDefaultThreadGroup:()Lorg/jruby/RubyThreadGroup;
            aload 2 /* rubyThread */
            invokevirtual org.jruby.RubyThreadGroup.addDirectly:(Lorg/jruby/RubyThread;)V
         8: .line 449
            aload 1 /* threadClass */
            getstatic org.jruby.runtime.ObjectMarshal.NOT_MARSHALABLE_MARSHAL:Lorg/jruby/runtime/ObjectMarshal;
            invokevirtual org.jruby.RubyClass.setMarshal:(Lorg/jruby/runtime/ObjectMarshal;)V
         9: .line 452
            aload 1 /* threadClass */
            ldc "Backtrace"
            aload 0 /* runtime */
            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 /* backtrace */
        start local 3 // org.jruby.RubyClass backtrace
        10: .line 453
            aload 3 /* backtrace */
            ldc "Location"
            aload 0 /* runtime */
            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 /* location */
        start local 4 // org.jruby.RubyClass location
        11: .line 455
            aload 4 /* location */
            ldc Lorg/jruby/RubyThread$Location;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
        12: .line 457
            aload 0 /* runtime */
            aload 4 /* location */
            invokevirtual org.jruby.Ruby.setLocation:(Lorg/jruby/RubyClass;)V
        13: .line 459
            aload 1 /* threadClass */
            areturn
        end local 4 // org.jruby.RubyClass location
        end local 3 // org.jruby.RubyClass backtrace
        end local 2 // org.jruby.RubyThread rubyThread
        end local 1 // org.jruby.RubyClass threadClass
        end local 0 // org.jruby.Ruby runtime
      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 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // org.jruby.runtime.Block block
         0: .line 551
            aload 0 /* recv */
            aload 1 /* args */
            iconst_1
            aload 2 /* block */
            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 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      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 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // org.jruby.runtime.Block block
         0: .line 564
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 2
         1: .line 565
            aload 0 /* recv */
            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: .line 567
      StackMap locals:
      StackMap stack:
            aload 0 /* recv */
            aload 1 /* args */
            iconst_0
            aload 2 /* block */
            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 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      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 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // org.jruby.runtime.Block block
         0: .line 572
            aload 0 /* recv */
            aload 1 /* args */
            aload 2 /* block */
            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 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      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 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // java.lang.Thread t
         0: .line 576
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 577
            aload 2 /* runtime */
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
            aload 0 /* recv */
            checkcast org.jruby.RubyClass
            aload 1 /* t */
            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 // org.jruby.Ruby runtime
        end local 1 // java.lang.Thread t
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      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 // org.jruby.Ruby runtime
        start local 1 // org.jruby.internal.runtime.ThreadService service
        start local 2 // java.lang.Thread thread
         0: .line 581
            aload 0 /* runtime */
            aload 1 /* service */
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getThread:()Lorg/jruby/RubyClass;
            aload 2 /* thread */
            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 // java.lang.Thread thread
        end local 1 // org.jruby.internal.runtime.ThreadService service
        end local 0 // org.jruby.Ruby runtime
      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 // org.jruby.Ruby runtime
        start local 1 // org.jruby.internal.runtime.ThreadService service
        start local 2 // org.jruby.RubyClass recv
        start local 3 // java.lang.Thread thread
         0: .line 586
            new org.jruby.RubyThread
            dup
            aload 0 /* runtime */
            aload 2 /* recv */
            invokespecial org.jruby.RubyThread.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
            astore 4 /* rubyThread */
        start local 4 // org.jruby.RubyThread rubyThread
         1: .line 588
            aload 4 /* rubyThread */
            new org.jruby.internal.runtime.NativeThread
            dup
            aload 4 /* rubyThread */
            aload 3 /* 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;
         2: .line 589
            aload 1 /* service */
            aload 4 /* rubyThread */
            invokevirtual org.jruby.internal.runtime.ThreadService.registerNewThread:(Lorg/jruby/RubyThread;)Lorg/jruby/runtime/ThreadContext;
            astore 5 /* context */
        start local 5 // org.jruby.runtime.ThreadContext context
         3: .line 590
            aload 1 /* service */
            aload 3 /* thread */
            aload 4 /* rubyThread */
            invokevirtual org.jruby.internal.runtime.ThreadService.associateThread:(Ljava/lang/Thread;Lorg/jruby/RubyThread;)V
         4: .line 592
            aload 5 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.preAdoptThread:()V
         5: .line 595
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getDefaultThreadGroup:()Lorg/jruby/RubyThreadGroup;
            aload 4 /* rubyThread */
            invokevirtual org.jruby.RubyThreadGroup.addDirectly:(Lorg/jruby/RubyThread;)V
         6: .line 597
            aload 4 /* rubyThread */
            areturn
        end local 5 // org.jruby.runtime.ThreadContext context
        end local 4 // org.jruby.RubyThread rubyThread
        end local 3 // java.lang.Thread thread
        end local 2 // org.jruby.RubyClass recv
        end local 1 // org.jruby.internal.runtime.ThreadService service
        end local 0 // org.jruby.Ruby runtime
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 602
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            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: .line 603
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* context */
            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: .line 605
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            new org.jruby.internal.runtime.RubyRunnable
            dup
            aload 0 /* this */
            aload 2 /* args */
            aload 3 /* block */
            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 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // java.lang.Runnable runnable
         0: .line 609
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 611
            new java.lang.Thread
            dup
            aload 2 /* runnable */
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
            astore 4 /* thread */
        start local 4 // java.lang.Thread thread
         2: .line 612
            aload 4 /* thread */
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
         3: .line 613
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getFile:()Ljava/lang/String;
            putfield org.jruby.RubyThread.file:Ljava/lang/String;
         4: .line 614
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getLine:()I
            putfield org.jruby.RubyThread.line:I
         5: .line 615
            aload 3 /* runtime */
            aload 4 /* thread */
            aload 0 /* this */
            getfield org.jruby.RubyThread.file:Ljava/lang/String;
            aload 0 /* this */
            getfield org.jruby.RubyThread.line:I
            invokestatic org.jruby.RubyThread.initThreadName:(Lorg/jruby/Ruby;Ljava/lang/Thread;Ljava/lang/String;I)V
         6: .line 616
            aload 0 /* this */
            new org.jruby.internal.runtime.NativeThread
            dup
            aload 0 /* this */
            aload 4 /* 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;
         7: .line 618
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.addToCorrectThreadGroup:(Lorg/jruby/runtime/ThreadContext;)V
         8: .line 621
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
            aload 4 /* thread */
            aload 0 /* this */
            invokevirtual org.jruby.internal.runtime.ThreadService.associateThread:(Ljava/lang/Thread;Lorg/jruby/RubyThread;)V
         9: .line 624
            aload 1 /* context */
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
            aload 0 /* this */
            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: .line 626
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.start:()V
        11: .line 630
            invokestatic java.lang.Thread.yield:()V
        12: .line 632
            aload 0 /* this */
        13: areturn
        end local 4 // java.lang.Thread thread
        14: .line 634
      StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext java.lang.Runnable org.jruby.Ruby
      StackMap stack: java.lang.OutOfMemoryError
            astore 4 /* oome */
        start local 4 // java.lang.OutOfMemoryError oome
        15: .line 635
            ldc "unable to create new native thread"
            aload 4 /* oome */
            invokevirtual java.lang.OutOfMemoryError.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 636
            aload 3 /* runtime */
            aload 4 /* oome */
            invokevirtual java.lang.OutOfMemoryError.getMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        17: .line 638
      StackMap locals: java.lang.OutOfMemoryError
      StackMap stack:
            aload 4 /* oome */
            athrow
        end local 4 // java.lang.OutOfMemoryError oome
        18: .line 640
      StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext java.lang.Runnable org.jruby.Ruby
      StackMap stack: java.lang.SecurityException
            astore 4 /* ex */
        start local 4 // java.lang.SecurityException ex
        19: .line 641
            aload 3 /* runtime */
            aload 4 /* ex */
            invokevirtual java.lang.SecurityException.getMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 4 // java.lang.SecurityException ex
        end local 3 // org.jruby.Ruby runtime
        end local 2 // java.lang.Runnable runnable
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.runtime.ThreadContext context
        start local 1 // java.util.Vector sourceStack
        start local 2 // java.util.Vector targetStack
         0: .line 650
            aload 1 /* sourceStack */
            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 /* h */
        start local 3 // org.jruby.RubyHash h
         2: .line 651
            aload 2 /* targetStack */
            aload 3 /* h */
            aload 0 /* context */
            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 // org.jruby.RubyHash h
         3: .line 650
            iinc 4 1
      StackMap locals:
      StackMap stack:
         4: iload 4
            iload 5
            if_icmplt 1
         5: .line 653
            return
        end local 2 // java.util.Vector targetStack
        end local 1 // java.util.Vector sourceStack
        end local 0 // org.jruby.runtime.ThreadContext context
      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 // org.jruby.Ruby runtime
        start local 1 // java.lang.Thread thread
        start local 2 // java.lang.String file
        start local 3 // int line
         0: .line 660
            new java.lang.StringBuilder
            dup
            bipush 24
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 5 /* name */
        start local 5 // java.lang.StringBuilder name
         1: .line 661
            aload 5 /* name */
         2: .line 662
            ldc "Ruby-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 663
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getRuntimeNumber:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         4: .line 664
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         5: .line 665
            ldc "Thread-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 666
            aload 0 /* runtime */
            invokestatic org.jruby.RubyThread.incAndGetThreadCount:(Lorg/jruby/Ruby;)J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
         7: .line 667
            aload 2 /* file */
            ifnull 14
         8: .line 668
            aload 5 /* name */
         9: .line 669
            bipush 58
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        10: .line 670
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        11: .line 671
            aload 2 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 672
            bipush 58
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        13: .line 673
            iload 3 /* line */
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        14: .line 675
      StackMap locals: org.jruby.Ruby java.lang.Thread java.lang.String int top java.lang.StringBuilder
      StackMap stack:
            aload 5 /* name */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* newName */
        start local 4 // java.lang.String newName
        15: .line 677
            aload 1 /* thread */
            aload 4 /* newName */
            invokevirtual java.lang.Thread.setName:(Ljava/lang/String;)V
        16: .line 678
            return
        end local 5 // java.lang.StringBuilder name
        end local 4 // java.lang.String newName
        end local 3 // int line
        end local 2 // java.lang.String file
        end local 1 // java.lang.Thread thread
        end local 0 // org.jruby.Ruby runtime
      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 // org.jruby.Ruby runtime
         0: .line 681
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
            invokevirtual org.jruby.internal.runtime.ThreadService.incrementAndGetThreadCount:()J
            lreturn
        end local 0 // org.jruby.Ruby runtime
      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 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // boolean callInit
        start local 3 // org.jruby.runtime.Block block
         0: .line 685
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 686
            new org.jruby.RubyThread
            dup
            aload 4 /* runtime */
            aload 0 /* recv */
            checkcast org.jruby.RubyClass
            invokespecial org.jruby.RubyThread.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
            astore 5 /* rubyThread */
        start local 5 // org.jruby.RubyThread rubyThread
         2: .line 688
            iload 2 /* callInit */
            ifeq 6
         3: .line 689
            aload 5 /* rubyThread */
            aload 1 /* args */
            aload 3 /* block */
            invokevirtual org.jruby.RubyThread.callInit:([Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)V
         4: .line 691
            aload 5 /* rubyThread */
            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: .line 692
            aload 4 /* runtime */
            aload 4 /* runtime */
            ldc "uninitialized thread - check "
            aload 4 /* runtime */
            aload 0 /* recv */
            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: .line 696
      StackMap locals: org.jruby.Ruby org.jruby.RubyThread
      StackMap stack:
            aload 5 /* rubyThread */
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* args */
            aload 3 /* block */
            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: .line 699
      StackMap locals:
      StackMap stack:
            aload 5 /* rubyThread */
            areturn
        end local 5 // org.jruby.RubyThread rubyThread
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block block
        end local 2 // boolean callInit
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      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 // org.jruby.Ruby runtime
        start local 1 // int pid
        start local 2 // org.jruby.runtime.Block block
         0: .line 703
            aload 0 /* runtime */
            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 /* waiter */
        start local 3 // org.jruby.runtime.builtin.IRubyObject waiter
         1: .line 704
            new org.jruby.RubyThread
            dup
            aload 0 /* runtime */
            aload 3 /* waiter */
            checkcast org.jruby.RubyClass
            invokespecial org.jruby.RubyThread.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
            astore 4 /* rubyThread */
        start local 4 // org.jruby.RubyThread rubyThread
         2: .line 705
            aload 4 /* rubyThread */
            aload 0 /* runtime */
            ldc "pid"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            aload 0 /* runtime */
            iload 1 /* pid */
            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: .line 706
            aload 4 /* rubyThread */
            getstatic org.jruby.runtime.builtin.IRubyObject.NULL_ARRAY:[Lorg/jruby/runtime/builtin/IRubyObject;
            aload 2 /* block */
            invokevirtual org.jruby.RubyThread.callInit:([Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)V
         4: .line 707
            aload 4 /* rubyThread */
            areturn
        end local 4 // org.jruby.RubyThread rubyThread
        end local 3 // org.jruby.runtime.builtin.IRubyObject waiter
        end local 2 // org.jruby.runtime.Block block
        end local 1 // int pid
        end local 0 // org.jruby.Ruby runtime
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject result
         0: .line 711
            aload 0 /* this */
            aload 1 /* result */
            putfield org.jruby.RubyThread.finalResult:Lorg/jruby/runtime/builtin/IRubyObject;
         1: .line 712
            return
        end local 1 // org.jruby.runtime.builtin.IRubyObject result
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 715
            aload 0 /* this */
            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: .line 716
            return
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 719
            aload 0 /* this */
            aload 0 /* this */
            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: .line 720
            return
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 724
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.anyInterrupted:()Z
            ifeq 2
         1: .line 725
            aload 0 /* this */
            aload 1 /* context */
            iconst_1
            invokevirtual org.jruby.RubyThread.executeInterrupts:(Lorg/jruby/runtime/ThreadContext;Z)V
         2: .line 727
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 731
            invokestatic java.lang.Thread.interrupted:()Z
            ifne 1
            aload 0 /* this */
            getfield org.jruby.RubyThread.interruptFlag:I
            aload 0 /* this */
            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 // org.jruby.RubyThread this
      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: .line 735
            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 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject _mask
        start local 3 // org.jruby.runtime.Block block
         0: .line 740
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 2
         1: .line 741
            aload 0 /* context */
            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: .line 744
      StackMap locals:
      StackMap stack:
            aload 2 /* _mask */
            aload 0 /* context */
            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 /* mask */
        start local 4 // org.jruby.RubyHash mask
         3: .line 746
            aload 4 /* mask */
            aload 0 /* context */
            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: .line 748
            aload 0 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            astore 5 /* thread */
        start local 5 // org.jruby.RubyThread thread
         5: .line 749
            aload 5 /* thread */
            getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
            aload 4 /* mask */
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
         6: .line 750
            aload 5 /* thread */
            getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 9
         7: .line 751
            aload 5 /* thread */
            iconst_0
            putfield org.jruby.RubyThread.pendingInterruptQueueChecked:Z
         8: .line 752
            aload 5 /* thread */
            invokevirtual org.jruby.RubyThread.setInterrupt:()V
         9: .line 757
      StackMap locals: org.jruby.RubyHash org.jruby.RubyThread
      StackMap stack:
            aload 5 /* thread */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
        10: .line 759
            aload 3 /* block */
            aload 0 /* context */
            invokevirtual org.jruby.runtime.Block.call:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7
        11: .line 761
            aload 5 /* thread */
            getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
            aload 5 /* thread */
            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: .line 762
            aload 5 /* thread */
            invokevirtual org.jruby.RubyThread.setInterrupt:()V
        13: .line 764
            aload 5 /* thread */
            aload 0 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        14: .line 759
            aload 7
            areturn
        15: .line 760
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        16: .line 761
            aload 5 /* thread */
            getfield org.jruby.RubyThread.interruptMaskStack:Ljava/util/Vector;
            aload 5 /* thread */
            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: .line 762
            aload 5 /* thread */
            invokevirtual org.jruby.RubyThread.setInterrupt:()V
        18: .line 764
            aload 5 /* thread */
            aload 0 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        19: .line 765
            aload 6
            athrow
        end local 5 // org.jruby.RubyThread thread
        end local 4 // org.jruby.RubyHash mask
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject _mask
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      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 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject sym
         0: .line 776
            aload 1 /* sym */
            instanceof org.jruby.RubySymbol
            ifeq 8
         1: .line 777
            aload 1 /* sym */
            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: .line 778
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         6: .line 779
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
         7: .line 780
      StackMap locals:
      StackMap stack:
            iconst_3
            ireturn
         8: .line 781
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
         9: .line 783
            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 // org.jruby.runtime.builtin.IRubyObject sym
        end local 0 // org.jruby.runtime.ThreadContext context
      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 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 788
            aload 0 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            aload 0 /* context */
            aload 2 /* args */
            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 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 793
            aload 0 /* this */
            getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 2
         1: .line 794
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            areturn
         2: .line 796
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmpne 9
         3: .line 797
            aload 2 /* args */
            iconst_0
            aaload
            astore 3 /* err */
        start local 3 // org.jruby.runtime.builtin.IRubyObject err
         4: .line 798
            aload 3 /* err */
            instanceof org.jruby.RubyModule
            ifne 6
         5: .line 799
            aload 1 /* context */
            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: .line 801
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* this */
            aload 3 /* err */
            checkcast org.jruby.RubyModule
            invokevirtual org.jruby.RubyThread.pendingInterruptInclude:(Lorg/jruby/RubyModule;)Z
            ifeq 7
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
      StackMap locals:
      StackMap stack: org.jruby.RubyBoolean
         8: areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject err
         9: .line 803
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.RubyModule err
         0: .line 807
            aload 0 /* this */
            getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
            astore 2 /* iterator */
        start local 2 // java.util.Iterator iterator
         1: .line 808
            goto 4
         2: .line 809
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.RubyModule
            astore 3 /* e */
        start local 3 // org.jruby.RubyModule e
         3: .line 810
            aload 3 /* e */
            aload 1 /* err */
            invokevirtual org.jruby.RubyModule.isKindOfModule:(Lorg/jruby/RubyModule;)Z
            ifeq 4
            iconst_1
            ireturn
        end local 3 // org.jruby.RubyModule e
         4: .line 808
      StackMap locals:
      StackMap stack:
            aload 2 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 812
            iconst_0
            ireturn
        end local 2 // java.util.Iterator iterator
        end local 1 // org.jruby.RubyModule err
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 817
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 819
            aload 1 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 8
         2: .line 820
            aload 2 /* runtime */
            aload 1 /* name */
            invokestatic org.jruby.util.StringSupport.checkEmbeddedNulls:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            astore 3 /* nameStr */
        start local 3 // org.jruby.RubyString nameStr
         3: .line 821
            aload 3 /* nameStr */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            astore 4 /* enc */
        start local 4 // org.jcodings.Encoding enc
         4: .line 822
            aload 4 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 6
         5: .line 823
            aload 2 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "ASCII incompatible encoding ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* enc */
            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: .line 825
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            aload 2 /* runtime */
            aload 3 /* nameStr */
            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 // org.jcodings.Encoding enc
        end local 3 // org.jruby.RubyString nameStr
         7: .line 826
            goto 9
         8: .line 827
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            aconst_null
            invokeinterface org.jruby.internal.runtime.ThreadLike.setRubyName:(Ljava/lang/String;)V
         9: .line 830
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject name
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 835
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 837
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.getRubyName:()Ljava/lang/String;
            astore 2 /* rubyName */
        start local 2 // java.lang.CharSequence rubyName
         2: .line 839
            aload 2 /* rubyName */
            ifnonnull 3
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 841
      StackMap locals: org.jruby.Ruby java.lang.CharSequence
      StackMap stack:
            aload 1 /* runtime */
            aload 2 /* rubyName */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Ljava/lang/CharSequence;)Lorg/jruby/RubyString;
            areturn
        end local 2 // java.lang.CharSequence rubyName
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 852
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 853
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.isGlobalAbortOnExceptionEnabled:()Z
            ifeq 2
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
            goto 3
      StackMap locals: org.jruby.Ruby
      StackMap stack:
         2: aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
      StackMap locals:
      StackMap stack: org.jruby.RubyBoolean
         3: areturn
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      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 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject value
         0: .line 858
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* value */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            invokevirtual org.jruby.Ruby.setGlobalAbortOnExceptionEnabled:(Z)V
         1: .line 859
            aload 1 /* value */
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject value
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      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 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 864
            aload 0 /* recv */
            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 // org.jruby.runtime.builtin.IRubyObject recv
      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 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 869
            aload 0 /* recv */
            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 // org.jruby.runtime.builtin.IRubyObject recv
      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 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 874
            invokestatic java.lang.Thread.yield:()V
         1: .line 876
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      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 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 881
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 882
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
            invokevirtual org.jruby.internal.runtime.ThreadService.getActiveRubyThreads:()[Lorg/jruby/RubyThread;
            astore 2 /* activeThreads */
        start local 2 // org.jruby.RubyThread[] activeThreads
         2: .line 884
            aload 1 /* runtime */
            aload 2 /* activeThreads */
            invokestatic org.jruby.RubyArray.newArrayMayCopy:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 2 // org.jruby.RubyThread[] activeThreads
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 889
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            invokevirtual org.jruby.RubyThread.group:()Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* group */
        start local 2 // org.jruby.runtime.builtin.IRubyObject group
         1: .line 890
            aload 2 /* group */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 4
         2: .line 891
            aload 2 /* group */
            checkcast org.jruby.RubyThreadGroup
            aload 0 /* this */
            invokevirtual org.jruby.RubyThreadGroup.addDirectly:(Lorg/jruby/RubyThread;)V
         3: .line 892
            goto 5
         4: .line 893
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getDefaultThreadGroup:()Lorg/jruby/RubyThreadGroup;
            aload 0 /* this */
            invokevirtual org.jruby.RubyThreadGroup.addDirectly:(Lorg/jruby/RubyThread;)V
         5: .line 895
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.jruby.runtime.builtin.IRubyObject group
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject originalKey
         0: .line 898
            aload 1 /* originalKey */
            instanceof org.jruby.RubySymbol
            ifeq 1
            aload 1 /* originalKey */
            checkcast org.jruby.RubySymbol
            areturn
         1: .line 900
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         2: .line 902
            aload 1 /* originalKey */
            instanceof org.jruby.RubyString
            ifeq 3
            aload 2 /* runtime */
            aload 1 /* originalKey */
            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: .line 904
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 2 /* runtime */
            aload 2 /* runtime */
            aload 2 /* runtime */
            aload 1 /* originalKey */
            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 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject originalKey
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 908
            aload 0 /* this */
            getfield org.jruby.RubyThread.fiberLocalVariables:Ljava/util/Map;
            astore 1 /* locals */
        start local 1 // java.util.Map locals
         1: .line 909
            aload 1 /* locals */
            ifnonnull 9
         2: .line 910
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 911
            aload 0 /* this */
            getfield org.jruby.RubyThread.fiberLocalVariables:Ljava/util/Map;
            astore 1 /* locals */
         4: .line 912
            aload 1 /* locals */
            ifnonnull 5
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            dup_x1
            putfield org.jruby.RubyThread.fiberLocalVariables:Ljava/util/Map;
            astore 1 /* locals */
         5: .line 910
      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: .line 915
      StackMap locals:
      StackMap stack:
            aload 1 /* locals */
            areturn
        end local 1 // java.util.Map locals
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 920
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getFiberCurrentThread:()Lorg/jruby/RubyThread;
            invokevirtual org.jruby.RubyThread.getThreadLocals0:()Ljava/util/Map;
            areturn
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 924
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadLocalVariables:Ljava/util/Map;
            astore 1 /* locals */
        start local 1 // java.util.Map locals
         1: .line 925
            aload 1 /* locals */
            ifnonnull 9
         2: .line 926
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 927
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadLocalVariables:Ljava/util/Map;
            astore 1 /* locals */
         4: .line 928
            aload 1 /* locals */
            ifnonnull 5
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            dup_x1
            putfield org.jruby.RubyThread.threadLocalVariables:Ljava/util/Map;
            astore 1 /* locals */
         5: .line 926
      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: .line 931
      StackMap locals:
      StackMap stack:
            aload 1 /* locals */
            areturn
        end local 1 // java.util.Map locals
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 936
            aload 0 /* this */
            getfield org.jruby.RubyThread.contextVariables:Ljava/util/Map;
            areturn
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 940
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
            ifeq 1
            aload 0 /* this */
            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 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject key
        start local 3 // org.jruby.runtime.Block block
         0: .line 945
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* key */
            invokevirtual org.jruby.RubyThread.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* value */
        start local 4 // org.jruby.runtime.builtin.IRubyObject value
         1: .line 947
            aload 4 /* value */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 4
         2: .line 948
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 3
            aload 3 /* block */
            aload 1 /* context */
            aload 2 /* key */
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 950
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* context */
            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 /* key */
            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 /* this */
            aload 2 /* key */
            invokevirtual org.jruby.Ruby.newKeyError:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 953
      StackMap locals:
      StackMap stack:
            aload 4 /* value */
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject value
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject key
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject key
        start local 3 // org.jruby.runtime.builtin.IRubyObject _default
        start local 4 // org.jruby.runtime.Block block
         0: .line 958
            aload 4 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            istore 5 /* blockGiven */
        start local 5 // boolean blockGiven
         1: .line 960
            iload 5 /* blockGiven */
            ifeq 3
         2: .line 961
            aload 1 /* context */
            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: .line 964
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* key */
            invokevirtual org.jruby.RubyThread.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* value */
        start local 6 // org.jruby.runtime.builtin.IRubyObject value
         4: .line 966
            aload 6 /* value */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 7
         5: .line 967
            iload 5 /* blockGiven */
            ifeq 6
            aload 4 /* block */
            aload 1 /* context */
            aload 2 /* key */
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         6: .line 968
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* _default */
            areturn
         7: .line 971
      StackMap locals:
      StackMap stack:
            aload 6 /* value */
            areturn
        end local 6 // org.jruby.runtime.builtin.IRubyObject value
        end local 5 // boolean blockGiven
        end local 4 // org.jruby.runtime.Block block
        end local 3 // org.jruby.runtime.builtin.IRubyObject _default
        end local 2 // org.jruby.runtime.builtin.IRubyObject key
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject key
         0: .line 976
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
            astore 2 /* key */
         1: .line 977
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getFiberLocals:()Ljava/util/Map;
            astore 3 /* locals */
        start local 3 // java.util.Map locals
         2: .line 978
            aload 3 /* locals */
            dup
            astore 4
            monitorenter
         3: .line 980
            aload 3 /* locals */
            aload 2 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject
            dup
            astore 5 /* value */
        start local 5 // org.jruby.runtime.builtin.IRubyObject value
         4: ifnonnull 5
            aload 1 /* context */
            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 /* value */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         6: aload 4
            monitorexit
         7: areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject value
         8: .line 978
      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 // java.util.Map locals
        end local 2 // org.jruby.runtime.builtin.IRubyObject key
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject key
         0: .line 986
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* key */
            invokevirtual org.jruby.RubyThread.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject key
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject key
        start local 2 // org.jruby.runtime.builtin.IRubyObject value
         0: .line 991
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.checkFrozen:()V
         1: .line 993
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
            astore 1 /* key */
         2: .line 994
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getFiberLocals:()Ljava/util/Map;
            astore 3 /* locals */
        start local 3 // java.util.Map locals
         3: .line 995
            aload 3 /* locals */
            dup
            astore 4
            monitorenter
         4: .line 996
            aload 3 /* locals */
            aload 1 /* key */
            aload 2 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 995
            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: .line 998
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            areturn
        end local 3 // java.util.Map locals
        end local 2 // org.jruby.runtime.builtin.IRubyObject value
        end local 1 // org.jruby.runtime.builtin.IRubyObject key
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject key
         0: .line 1003
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
            astore 2 /* key */
         1: .line 1004
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getFiberLocals:()Ljava/util/Map;
            astore 3 /* locals */
        start local 3 // java.util.Map locals
         2: .line 1005
            aload 3 /* locals */
            dup
            astore 4
            monitorenter
         3: .line 1006
            aload 1 /* context */
            aload 3 /* locals */
            aload 2 /* key */
            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: .line 1005
      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 // java.util.Map locals
        end local 2 // org.jruby.runtime.builtin.IRubyObject key
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject key
         0: .line 1012
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* key */
            invokevirtual org.jruby.RubyThread.key_p:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyBoolean;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject key
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1017
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getFiberLocals:()Ljava/util/Map;
            astore 1 /* locals */
        start local 1 // java.util.Map locals
         1: .line 1019
            aload 1 /* locals */
            dup
            astore 3
            monitorenter
         2: .line 1020
            aload 1 /* locals */
            invokeinterface java.util.Map.size:()I
            anewarray org.jruby.runtime.builtin.IRubyObject
            astore 2 /* ary */
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] ary
         3: .line 1021
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: .line 1022
            aload 1 /* locals */
            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 /* entry */
        start local 5 // java.util.Map$Entry entry
         6: .line 1023
            aload 2 /* ary */
            iload 4 /* i */
            iinc 4 /* i */ 1
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject
            aastore
        end local 5 // java.util.Map$Entry entry
         7: .line 1022
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 4 // int i
         8: .line 1019
            aload 3
            monitorexit
         9: goto 12
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] ary
      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 // org.jruby.runtime.builtin.IRubyObject[] ary
        12: .line 1026
      StackMap locals: org.jruby.RubyThread java.util.Map org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            aload 2 /* ary */
            invokestatic org.jruby.RubyArray.newArrayMayCopy:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] ary
        end local 1 // java.util.Map locals
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject key
         0: .line 1031
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
            astore 2 /* key */
         1: .line 1032
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getThreadLocals:()Ljava/util/Map;
            astore 3 /* locals */
        start local 3 // java.util.Map locals
         2: .line 1033
            aload 3 /* locals */
            dup
            astore 4
            monitorenter
         3: .line 1034
            aload 1 /* context */
            aload 3 /* locals */
            aload 2 /* key */
            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: .line 1033
      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 // java.util.Map locals
        end local 2 // org.jruby.runtime.builtin.IRubyObject key
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject key
         0: .line 1040
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
            astore 2 /* key */
         1: .line 1041
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getThreadLocals:()Ljava/util/Map;
            astore 3 /* locals */
        start local 3 // java.util.Map locals
         2: .line 1042
            aload 3 /* locals */
            dup
            astore 4
            monitorenter
         3: .line 1044
            aload 3 /* locals */
            aload 2 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject
            dup
            astore 5 /* value */
        start local 5 // org.jruby.runtime.builtin.IRubyObject value
         4: ifnonnull 5
            aload 1 /* context */
            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 /* value */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         6: aload 4
            monitorexit
         7: areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject value
         8: .line 1042
      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 // java.util.Map locals
        end local 2 // org.jruby.runtime.builtin.IRubyObject key
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject key
        start local 3 // org.jruby.runtime.builtin.IRubyObject value
         0: .line 1050
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.checkFrozen:()V
         1: .line 1051
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
            astore 2 /* key */
         2: .line 1052
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getThreadLocals:()Ljava/util/Map;
            astore 4 /* locals */
        start local 4 // java.util.Map locals
         3: .line 1053
            aload 4 /* locals */
            dup
            astore 5
            monitorenter
         4: .line 1054
            aload 4 /* locals */
            aload 2 /* key */
            aload 3 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 1053
            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: .line 1056
      StackMap locals:
      StackMap stack:
            aload 3 /* value */
            areturn
        end local 4 // java.util.Map locals
        end local 3 // org.jruby.runtime.builtin.IRubyObject value
        end local 2 // org.jruby.runtime.builtin.IRubyObject key
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1061
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getThreadLocals:()Ljava/util/Map;
            astore 2 /* locals */
        start local 2 // java.util.Map locals
         1: .line 1063
            aload 2 /* locals */
            dup
            astore 4
            monitorenter
         2: .line 1064
            aload 2 /* locals */
            invokeinterface java.util.Map.size:()I
            anewarray org.jruby.runtime.builtin.IRubyObject
            astore 3 /* ary */
        start local 3 // org.jruby.runtime.builtin.IRubyObject[] ary
         3: .line 1065
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: .line 1066
            aload 2 /* locals */
            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 /* entry */
        start local 6 // java.util.Map$Entry entry
         6: .line 1067
            aload 3 /* ary */
            iload 5 /* i */
            iinc 5 /* i */ 1
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject
            aastore
        end local 6 // java.util.Map$Entry entry
         7: .line 1066
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 5 // int i
         8: .line 1063
            aload 4
            monitorexit
         9: goto 12
        end local 3 // org.jruby.runtime.builtin.IRubyObject[] ary
      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 // org.jruby.runtime.builtin.IRubyObject[] ary
        12: .line 1070
      StackMap locals: org.jruby.RubyThread org.jruby.runtime.ThreadContext java.util.Map org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* ary */
            invokestatic org.jruby.RubyArray.newArrayMayCopy:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject[] ary
        end local 2 // java.util.Map locals
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1076
            aload 0 /* this */
            getfield org.jruby.RubyThread.abortOnException:Z
            ifeq 1
            aload 0 /* this */
            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 /* this */
            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 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject val
         0: .line 1081
            aload 0 /* this */
            aload 1 /* val */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            putfield org.jruby.RubyThread.abortOnException:Z
         1: .line 1082
            aload 1 /* val */
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject val
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1087
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.isAlive:()Z
            ifeq 1
            aload 0 /* this */
            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 /* this */
            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 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1092
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* args */
            invokevirtual org.jruby.RubyThread.join:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1097
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1098
            ldc 9223372036854775807
            lstore 4 /* timeoutMillis */
        start local 4 // long timeoutMillis
         2: .line 1100
            aload 2 /* args */
            arraylength
            ifle 10
            aload 2 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 10
         3: .line 1101
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmple 5
         4: .line 1102
            aload 3 /* runtime */
            aload 2 /* args */
            arraylength
            iconst_1
            invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 1106
      StackMap locals: org.jruby.Ruby long
      StackMap stack:
            ldc 1000.0
            aload 2 /* args */
            iconst_0
            aaload
            invokestatic org.jruby.RubyNumeric.num2dbl:(Lorg/jruby/runtime/builtin/IRubyObject;)D
            dmul
            d2l
            lstore 4 /* timeoutMillis */
         6: .line 1107
            lload 4 /* timeoutMillis */
            lconst_0
            lcmp
            ifgt 10
         7: .line 1110
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
            ifeq 9
         8: .line 1111
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         9: .line 1113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        10: .line 1118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.isCurrent:()Z
            ifeq 12
        11: .line 1119
            aload 3 /* runtime */
            ldc "Target thread must not be current thread"
            invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        12: .line 1122
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            astore 6 /* currentThread */
        start local 6 // org.jruby.RubyThread currentThread
        13: .line 1125
            aload 6 /* currentThread */
            invokevirtual org.jruby.RubyThread.enterSleep:()V
        14: .line 1127
            lload 4 /* timeoutMillis */
            ldc 200
            invokestatic java.lang.Math.min:(JJ)J
            lstore 7 /* timeToWait */
        start local 7 // long timeToWait
        15: .line 1131
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 9 /* start */
        start local 9 // long start
        16: .line 1133
      StackMap locals: org.jruby.RubyThread long long
      StackMap stack:
            aload 6 /* currentThread */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        17: .line 1134
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            lload 7 /* timeToWait */
            invokeinterface org.jruby.internal.runtime.ThreadLike.join:(J)V
        18: .line 1135
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
            ifne 20
        19: .line 1136
            goto 33
        20: .line 1138
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 9 /* start */
            lsub
            lload 4 /* timeoutMillis */
            lcmp
            ifle 16
        end local 9 // long start
        end local 7 // long timeToWait
        21: .line 1142
            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 /* ie */
        start local 7 // java.lang.InterruptedException ie
        23: .line 1143
            aload 7 /* ie */
            invokevirtual java.lang.InterruptedException.printStackTrace:()V
        24: .line 1144
            getstatic org.jruby.RubyThread.$assertionsDisabled:Z
            ifne 25
            new java.lang.AssertionError
            dup
            aload 7 /* ie */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 7 // java.lang.InterruptedException ie
        25: .line 1149
      StackMap locals:
      StackMap stack:
            aload 6 /* currentThread */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
            goto 34
        26: .line 1145
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutionException
            astore 7 /* ie */
        start local 7 // java.util.concurrent.ExecutionException ie
        27: .line 1146
            aload 7 /* ie */
            invokevirtual java.util.concurrent.ExecutionException.printStackTrace:()V
        28: .line 1147
            getstatic org.jruby.RubyThread.$assertionsDisabled:Z
            ifne 29
            new java.lang.AssertionError
            dup
            aload 7 /* ie */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 7 // java.util.concurrent.ExecutionException ie
        29: .line 1149
      StackMap locals:
      StackMap stack:
            aload 6 /* currentThread */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
            goto 34
        30: .line 1148
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        31: .line 1149
            aload 6 /* currentThread */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
        32: .line 1150
            aload 11
            athrow
        33: .line 1149
      StackMap locals:
      StackMap stack:
            aload 6 /* currentThread */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
        34: .line 1152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.exitingException:Ljava/lang/Throwable;
            astore 7 /* exception */
        start local 7 // java.lang.Throwable exception
        35: .line 1153
            aload 7 /* exception */
            ifnull 41
        36: .line 1154
            aload 7 /* exception */
            instanceof org.jruby.exceptions.RaiseException
            ifeq 39
        37: .line 1156
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$!"
            aload 7 /* exception */
            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: .line 1157
            goto 40
        39: .line 1158
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$!"
            aload 3 /* runtime */
            aload 7 /* exception */
            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: .line 1160
      StackMap locals:
      StackMap stack:
            aload 7 /* exception */
            invokestatic org.jruby.runtime.Helpers.throwException:(Ljava/lang/Throwable;)V
        41: .line 1164
      StackMap locals:
      StackMap stack:
            aload 6 /* currentThread */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        42: .line 1166
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
            ifeq 44
        43: .line 1167
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        44: .line 1169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 7 // java.lang.Throwable exception
        end local 6 // org.jruby.RubyThread currentThread
        end local 4 // long timeoutMillis
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1175
            aload 0 /* this */
            aload 1 /* context */
            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: .line 1176
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 1177
            aload 0 /* this */
            getfield org.jruby.RubyThread.finalResult:Lorg/jruby/runtime/builtin/IRubyObject;
            aload 2
            monitorexit
         3: areturn
         4: .line 1176
      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 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1183
            aload 0 /* this */
            aload 0 /* this */
            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 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1188
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadGroup:Lorg/jruby/RubyThreadGroup;
            astore 1 /* group */
        start local 1 // org.jruby.RubyThreadGroup group
         1: .line 1189
            aload 1 /* group */
            ifnonnull 2
            aload 0 /* this */
            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 /* group */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         3: areturn
        end local 1 // org.jruby.RubyThreadGroup group
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.RubyThreadGroup rubyThreadGroup
         0: .line 1193
            aload 0 /* this */
            aload 1 /* rubyThreadGroup */
            putfield org.jruby.RubyThread.threadGroup:Lorg/jruby/RubyThreadGroup;
         1: .line 1194
            return
        end local 1 // org.jruby.RubyThreadGroup rubyThreadGroup
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1198
            aload 0 /* this */
            aload 0 /* this */
            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 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1203
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1204
            aload 2 /* runtime */
            ldc "#<"
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            astore 3 /* result */
        start local 3 // org.jruby.RubyString result
         2: .line 1206
            aload 3 /* result */
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getMetaClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.getRealClass:()Lorg/jruby/RubyClass;
            aload 1 /* context */
            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: .line 1207
            aload 3 /* result */
            bipush 58
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
         4: .line 1208
            aload 3 /* result */
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.identityString:()Ljava/lang/String;
            invokevirtual org.jruby.RubyString.catString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            pop
         5: .line 1209
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         6: .line 1210
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.getRubyName:()Ljava/lang/String;
            astore 5 /* id */
        start local 5 // java.lang.String id
         7: .line 1211
            aload 5 /* id */
            invokestatic org.jruby.RubyThread.notEmpty:(Ljava/lang/String;)Z
            ifeq 10
         8: .line 1212
            aload 3 /* result */
            bipush 64
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
         9: .line 1213
            aload 3 /* result */
            aload 2 /* runtime */
            aload 5 /* id */
            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: .line 1215
      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 /* this */
            getfield org.jruby.RubyThread.file:Ljava/lang/String;
            invokestatic org.jruby.RubyThread.notEmpty:(Ljava/lang/String;)Z
            ifeq 15
            aload 0 /* this */
            getfield org.jruby.RubyThread.line:I
            iflt 15
        11: .line 1216
            aload 3 /* result */
            bipush 64
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
        12: .line 1217
            aload 3 /* result */
            aload 0 /* this */
            getfield org.jruby.RubyThread.file:Ljava/lang/String;
            invokevirtual org.jruby.RubyString.catString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            pop
        13: .line 1218
            aload 3 /* result */
            bipush 58
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
        14: .line 1219
            aload 3 /* result */
            aload 0 /* this */
            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: .line 1221
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            bipush 32
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
        16: .line 1222
            aload 3 /* result */
            aload 0 /* this */
            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: .line 1223
            aload 3 /* result */
            bipush 62
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
        18: .line 1224
            aload 3 /* result */
            aload 4
            monitorexit
        19: areturn
        end local 5 // java.lang.String id
        20: .line 1209
      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 // org.jruby.RubyString result
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // java.lang.String str
         0: .line 1229
            aload 0 /* str */
            ifnull 1
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.String str
      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 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject receiver
         0: .line 1234
            aload 0 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            astore 2 /* rubyThread */
        start local 2 // org.jruby.RubyThread rubyThread
         1: .line 1236
            aload 0 /* context */
            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: .line 1237
            aload 0 /* context */
            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: .line 1240
      StackMap locals: org.jruby.RubyThread
      StackMap stack:
            aload 2 /* rubyThread */
            dup
            astore 3
            monitorenter
         4: .line 1241
            aload 2 /* rubyThread */
            aload 0 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
         5: .line 1242
            aload 2 /* rubyThread */
            invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
            astore 4 /* oldStatus */
        start local 4 // org.jruby.RubyThread$Status oldStatus
         6: .line 1244
            aload 2 /* rubyThread */
            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: .line 1245
            aload 2 /* rubyThread */
            invokevirtual java.lang.Object.wait:()V
         8: .line 1246
            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: .line 1248
            aload 2 /* rubyThread */
            aload 0 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        11: .line 1249
            aload 2 /* rubyThread */
            getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
            aload 4 /* oldStatus */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
            goto 18
        12: .line 1247
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        13: .line 1248
            aload 2 /* rubyThread */
            aload 0 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        14: .line 1249
            aload 2 /* rubyThread */
            getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
            aload 4 /* oldStatus */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
        15: .line 1250
            aload 5
            athrow
        16: .line 1248
      StackMap locals:
      StackMap stack:
            aload 2 /* rubyThread */
            aload 0 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        17: .line 1249
            aload 2 /* rubyThread */
            getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
            aload 4 /* oldStatus */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
        end local 4 // org.jruby.RubyThread$Status oldStatus
        18: .line 1240
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        19: goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: aload 3
            monitorexit
        21: athrow
        22: .line 1253
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.RubyThread rubyThread
        end local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        end local 0 // org.jruby.runtime.ThreadContext context
      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 // org.jruby.runtime.builtin.IRubyObject receiver
        start local 1 // org.jruby.runtime.builtin.IRubyObject rubyThread
        start local 2 // org.jruby.runtime.Block block
         0: .line 1258
            aload 1 /* rubyThread */
            instanceof org.jruby.RubyThread
            ifne 1
            aload 0 /* receiver */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* rubyThread */
            aload 0 /* receiver */
            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: .line 1259
      StackMap locals:
      StackMap stack:
            aload 1 /* rubyThread */
            checkcast org.jruby.RubyThread
            invokevirtual org.jruby.RubyThread.kill:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject rubyThread
        end local 0 // org.jruby.runtime.builtin.IRubyObject receiver
      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 // org.jruby.runtime.builtin.IRubyObject receiver
        start local 1 // org.jruby.runtime.Block block
         0: .line 1264
            aload 0 /* receiver */
            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 /* rubyThread */
        start local 2 // org.jruby.RubyThread rubyThread
         1: .line 1266
            aload 2 /* rubyThread */
            invokevirtual org.jruby.RubyThread.kill:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.RubyThread rubyThread
        end local 1 // org.jruby.runtime.Block block
        end local 0 // org.jruby.runtime.builtin.IRubyObject receiver
      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 // org.jruby.RubyThread this
         0: .line 1272
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
            getstatic org.jruby.RubyThread$Status.SLEEP:Lorg/jruby/RubyThread$Status;
            if_acmpeq 1
            aload 0 /* this */
            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 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1277
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
            getstatic org.jruby.RubyThread$Status.DEAD:Lorg/jruby/RubyThread$Status;
            if_acmpne 2
         1: .line 1278
            aload 0 /* this */
            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: .line 1281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 1282
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.interrupt:()V
         4: .line 1284
            aload 0 /* this */
            areturn
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1289
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            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 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject priority
         0: .line 1294
            aload 1 /* priority */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 2 /* iPriority */
        start local 2 // int iPriority
         1: .line 1296
            iload 2 /* iPriority */
            bipush -3
            if_icmpge 4
         2: .line 1297
            bipush -3
            istore 2 /* iPriority */
         3: .line 1298
            goto 6
      StackMap locals: int
      StackMap stack:
         4: iload 2 /* iPriority */
            iconst_3
            if_icmple 6
         5: .line 1299
            iconst_3
            istore 2 /* iPriority */
         6: .line 1302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
            ifeq 14
         7: .line 1303
            iload 2 /* iPriority */
            invokestatic org.jruby.RubyThread.rubyPriorityToJavaPriority:(I)I
            istore 3 /* jPriority */
        start local 3 // int jPriority
         8: .line 1304
            iload 3 /* jPriority */
            iconst_1
            if_icmpge 11
         9: .line 1305
            iconst_1
            istore 3 /* jPriority */
        10: .line 1306
            goto 13
      StackMap locals: int
      StackMap stack:
        11: iload 3 /* jPriority */
            bipush 10
            if_icmple 13
        12: .line 1307
            bipush 10
            istore 3 /* jPriority */
        13: .line 1309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            iload 3 /* jPriority */
            invokeinterface org.jruby.internal.runtime.ThreadLike.setPriority:(I)V
        end local 3 // int jPriority
        14: .line 1312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            iload 2 /* iPriority */
            i2l
            invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
            areturn
        end local 2 // int iPriority
        end local 1 // org.jruby.runtime.builtin.IRubyObject priority
        end local 0 // org.jruby.RubyThread this
      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 // int javaPriority
         0: .line 1322
            ldc 1.5
            ldc 8.0
            iload 0 /* javaPriority */
            i2d
            dmul
            ldc 41.0
            dadd
            invokestatic java.lang.Math.sqrt:(D)D
            dmul
            ldc 13.5
            dsub
            dstore 1 /* d */
        start local 1 // double d
         1: .line 1323
            dload 1 /* d */
            d2f
            invokestatic java.lang.Math.round:(F)I
            ireturn
        end local 1 // double d
        end local 0 // int javaPriority
      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 // int rubyPriority
         0: .line 1327
            iload 0 /* rubyPriority */
            iload 0 /* rubyPriority */
            imul
            i2d
            ldc 18.0
            ddiv
            ldc 1.5
            iload 0 /* rubyPriority */
            i2d
            dmul
            dadd
            ldc 5.0
            dadd
            dstore 1 /* d */
        start local 1 // double d
         1: .line 1328
            dload 1 /* d */
            d2f
            invokestatic java.lang.Math.round:(F)I
            ireturn
        end local 1 // double d
        end local 0 // int rubyPriority
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject exception
         0: .line 1339
            aload 0 /* this */
            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 /* context */
        start local 2 // org.jruby.runtime.ThreadContext context
         1: .line 1340
            aload 0 /* this */
            aload 2 /* context */
            aload 2 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 1 /* exception */
            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 // org.jruby.runtime.ThreadContext context
        end local 1 // org.jruby.runtime.builtin.IRubyObject exception
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject exception
        start local 2 // org.jruby.RubyString message
         0: .line 1352
            aload 0 /* this */
            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 /* context */
        start local 3 // org.jruby.runtime.ThreadContext context
         1: .line 1353
            aload 0 /* this */
            aload 3 /* context */
            aload 3 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 1 /* exception */
            aastore
            dup
            iconst_1
            aload 2 /* message */
            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 // org.jruby.runtime.ThreadContext context
        end local 2 // org.jruby.RubyString message
        end local 1 // org.jruby.runtime.builtin.IRubyObject exception
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 1358
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            aload 2 /* args */
            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 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // org.jruby.runtime.Block block
         0: .line 1363
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* args */
            aload 2 /* block */
            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 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.RubyThread currentThread
        start local 3 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1367
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.isAlive:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 1369
      StackMap locals:
      StackMap stack:
            aload 2 /* currentThread */
            aload 0 /* this */
            if_acmpne 4
         2: .line 1370
            aload 1 /* context */
            aload 0 /* this */
            aload 3 /* args */
            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: .line 1371
            getstatic org.jruby.RubyThread.$assertionsDisabled:Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 1374
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* args */
            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 /* exception */
        start local 4 // org.jruby.runtime.builtin.IRubyObject exception
         5: .line 1376
            aload 0 /* this */
            aload 4 /* exception */
            invokevirtual org.jruby.RubyThread.pendingInterruptEnqueue:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         6: .line 1377
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.interrupt:()V
         7: .line 1379
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject exception
        end local 3 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 2 // org.jruby.RubyThread currentThread
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 1383
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 1384
            aload 2 /* args */
            arraylength
            ifne 5
         2: .line 1385
            aload 0 /* this */
            getfield org.jruby.RubyThread.errorInfo:Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 4
         3: .line 1387
            aload 4 /* runtime */
            aload 4 /* runtime */
            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: .line 1389
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.errorInfo:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         5: .line 1392
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_0
            aaload
            astore 5 /* arg */
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg
         6: .line 1396
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmpne 16
         7: .line 1397
            aload 5 /* arg */
            instanceof org.jruby.RubyString
            ifeq 10
         8: .line 1398
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getRuntimeError:()Lorg/jruby/RubyClass;
            aload 1 /* context */
            aload 2 /* args */
            aload 3 /* block */
            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 /* tmp */
        start local 6 // org.jruby.runtime.builtin.IRubyObject tmp
         9: .line 1399
            goto 19
        end local 6 // org.jruby.runtime.builtin.IRubyObject tmp
        10: .line 1400
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 5 /* arg */
            instanceof org.jruby.java.proxies.ConcreteJavaProxy
            ifeq 12
        11: .line 1401
            aload 5 /* arg */
            areturn
        12: .line 1403
      StackMap locals:
      StackMap stack:
            aload 5 /* arg */
            ldc "exception"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
            ifne 14
        13: .line 1404
            aload 4 /* runtime */
            ldc "exception class/object expected"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        14: .line 1406
      StackMap locals:
      StackMap stack:
            aload 5 /* arg */
            aload 1 /* context */
            ldc "exception"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* tmp */
        start local 6 // org.jruby.runtime.builtin.IRubyObject tmp
        15: .line 1408
            goto 19
        end local 6 // org.jruby.runtime.builtin.IRubyObject tmp
        16: .line 1409
      StackMap locals:
      StackMap stack:
            aload 5 /* arg */
            ldc "exception"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
            ifne 18
        17: .line 1410
            aload 4 /* runtime */
            ldc "exception class/object expected"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        18: .line 1413
      StackMap locals:
      StackMap stack:
            aload 5 /* arg */
            aload 1 /* context */
            ldc "exception"
            aload 2 /* args */
            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 /* tmp */
        start local 6 // org.jruby.runtime.builtin.IRubyObject tmp
        19: .line 1416
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getException:()Lorg/jruby/RubyClass;
            aload 6 /* tmp */
            invokevirtual org.jruby.RubyClass.isInstance:(Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifne 21
        20: .line 1417
            aload 4 /* runtime */
            ldc "exception object expected"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        21: .line 1420
      StackMap locals:
      StackMap stack:
            aload 6 /* tmp */
            checkcast org.jruby.RubyException
            astore 7 /* exception */
        start local 7 // org.jruby.RubyException exception
        22: .line 1422
            aload 2 /* args */
            arraylength
            iconst_3
            if_icmpne 24
        23: .line 1423
            aload 7 /* exception */
            aload 2 /* args */
            iconst_2
            aaload
            invokevirtual org.jruby.RubyException.set_backtrace:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        24: .line 1426
      StackMap locals: org.jruby.RubyException
      StackMap stack:
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getErrorInfo:()Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* cause */
        start local 8 // org.jruby.runtime.builtin.IRubyObject cause
        25: .line 1427
            aload 8 /* cause */
            aload 7 /* exception */
            if_acmpeq 27
        26: .line 1428
            aload 7 /* exception */
            aload 8 /* cause */
            invokevirtual org.jruby.RubyException.setCause:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        27: .line 1431
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 7 /* exception */
            areturn
        end local 8 // org.jruby.runtime.builtin.IRubyObject cause
        end local 7 // org.jruby.RubyException exception
        end local 6 // org.jruby.runtime.builtin.IRubyObject tmp
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1436
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.wakeup:()Lorg/jruby/RubyThread;
            areturn
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // long millis
         0: .line 1449
            getstatic org.jruby.RubyThread.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            aload 0 /* this */
            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: .line 1450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.sleepTask:Lorg/jruby/RubyThread$SleepTask2;
            lload 1 /* millis */
            putfield org.jruby.RubyThread$SleepTask2.millis:J
         2: .line 1452
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getContext:()Lorg/jruby/runtime/ThreadContext;
            aconst_null
            aload 0 /* this */
            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 /* timeSlept */
        start local 3 // long timeSlept
         3: .line 1453
            lload 1 /* millis */
            lconst_0
            lcmp
            ifeq 4
            lload 3 /* timeSlept */
            lload 1 /* millis */
            lcmp
            iflt 6
         4: .line 1462
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            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: .line 1455
            iconst_1
            ireturn
         6: .line 1462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 1458
            iconst_0
            ireturn
        end local 3 // long timeSlept
         8: .line 1460
      StackMap locals: org.jruby.RubyThread long
      StackMap stack: java.lang.Throwable
            astore 5
         9: .line 1462
            aload 0 /* this */
            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: .line 1463
            aload 5
            athrow
        end local 1 // long millis
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1467
            aload 0 /* this */
            aload 0 /* this */
            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 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1472
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
            astore 2 /* status */
        start local 2 // org.jruby.RubyThread$Status status
         1: .line 1473
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.isAlive:()Z
            ifeq 3
            aload 2 /* status */
            getstatic org.jruby.RubyThread$Status.DEAD:Lorg/jruby/RubyThread$Status;
            if_acmpeq 3
         2: .line 1474
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* status */
            invokevirtual org.jruby.Ruby.getThreadStatus:(Lorg/jruby/RubyThread$Status;)Lorg/jruby/RubyString;
            areturn
         3: .line 1477
      StackMap locals: org.jruby.RubyThread$Status
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.exitingException:Ljava/lang/Throwable;
            ifnull 4
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         5: areturn
        end local 2 // org.jruby.RubyThread$Status status
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.RubyThread$BlockingTask task
         0: .line 1559
            aload 0 /* this */
            aload 1 /* task */
            putfield org.jruby.RubyThread.currentBlockingTask:Lorg/jruby/RubyThread$BlockingTask;
         1: .line 1560
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.enterSleep:()V
         2: .line 1561
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
         3: .line 1562
            aload 1 /* task */
            invokeinterface org.jruby.RubyThread$BlockingTask.run:()V
         4: .line 1563
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 1564
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
         7: .line 1565
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentBlockingTask:Lorg/jruby/RubyThread$BlockingTask;
         8: .line 1566
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
         9: .line 1567
            aload 2
            athrow
        10: .line 1564
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
        11: .line 1565
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentBlockingTask:Lorg/jruby/RubyThread$BlockingTask;
        12: .line 1566
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
        13: .line 1568
            return
        end local 1 // org.jruby.RubyThread$BlockingTask task
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // java.lang.Object data
        start local 3 // org.jruby.RubyThread$Task task
         0: .line 1571
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* data */
            getstatic org.jruby.RubyThread$Status.SLEEP:Lorg/jruby/RubyThread$Status;
            aload 3 /* task */
            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 // org.jruby.RubyThread$Task task
        end local 2 // java.lang.Object data
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // java.lang.Object data
        start local 3 // org.jruby.RubyThread$Status status
        start local 4 // org.jruby.RubyThread$Task task
         0: .line 1575
            aload 0 /* this */
            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 /* oldStatus */
        start local 5 // org.jruby.RubyThread$Status oldStatus
         1: .line 1577
            aload 0 /* this */
            aload 2 /* data */
            putfield org.jruby.RubyThread.unblockArg:Ljava/lang/Object;
         2: .line 1578
            aload 0 /* this */
            aload 4 /* task */
            putfield org.jruby.RubyThread.unblockFunc:Lorg/jruby/RubyThread$Unblocker;
         3: .line 1581
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
         4: .line 1583
            aload 0 /* this */
            getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
            aload 3 /* status */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         5: .line 1585
            aload 4 /* task */
            aload 1 /* context */
            aload 2 /* data */
            invokeinterface org.jruby.RubyThread$Task.run:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;)Ljava/lang/Object;
            astore 7
         6: .line 1587
            aload 0 /* this */
            getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
            aload 5 /* oldStatus */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         7: .line 1588
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.unblockFunc:Lorg/jruby/RubyThread$Unblocker;
         8: .line 1589
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.unblockArg:Ljava/lang/Object;
         9: .line 1590
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        10: .line 1585
            aload 7
            areturn
        11: .line 1586
      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: .line 1587
            aload 0 /* this */
            getfield org.jruby.RubyThread.status:Ljava/util/concurrent/atomic/AtomicReference;
            aload 5 /* oldStatus */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
        13: .line 1588
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.unblockFunc:Lorg/jruby/RubyThread$Unblocker;
        14: .line 1589
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.unblockArg:Ljava/lang/Object;
        15: .line 1590
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        16: .line 1591
            aload 6
            athrow
        end local 5 // org.jruby.RubyThread$Status oldStatus
        end local 4 // org.jruby.RubyThread$Task task
        end local 3 // org.jruby.RubyThread$Status status
        end local 2 // java.lang.Object data
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1595
            aload 0 /* this */
            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: .line 1596
            return
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1599
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getStatus:()Lorg/jruby/RubyThread$Status;
            getstatic org.jruby.RubyThread$Status.ABORTING:Lorg/jruby/RubyThread$Status;
            if_acmpeq 2
         1: .line 1600
            aload 0 /* this */
            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: .line 1602
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1605
            aload 0 /* this */
            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 /* status */
        start local 1 // org.jruby.RubyThread$Status status
         1: .line 1607
            aload 1 /* status */
            getstatic org.jruby.RubyThread$Status.NATIVE:Lorg/jruby/RubyThread$Status;
            if_acmpeq 2
            aload 1 /* status */
            areturn
         2: .line 1609
      StackMap locals: org.jruby.RubyThread$Status
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.nativeStatus:()Lorg/jruby/RubyThread$Status;
            areturn
        end local 1 // org.jruby.RubyThread$Status status
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1613
            invokestatic org.jruby.RubyThread.$SWITCH_TABLE$java$lang$Thread$State:()[I
            aload 0 /* this */
            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: .line 1617
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.RubyThread$Status.RUN:Lorg/jruby/RubyThread$Status;
            areturn
         2: .line 1621
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.RubyThread$Status.SLEEP:Lorg/jruby/RubyThread$Status;
            areturn
         3: .line 1623
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.RubyThread$Status.DEAD:Lorg/jruby/RubyThread$Status;
            areturn
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1629
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 1631
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            astore 2 /* currentThread */
        start local 2 // org.jruby.RubyThread currentThread
         2: .line 1633
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
            invokevirtual org.jruby.internal.runtime.ThreadService.getMainThread:()Lorg/jruby/RubyThread;
            pop
         3: .line 1637
            aload 0 /* this */
            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: .line 1639
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* currentThread */
            invokevirtual org.jruby.RubyThread.genericKill:(Lorg/jruby/Ruby;Lorg/jruby/RubyThread;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.RubyThread currentThread
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyThread currentThread
         0: .line 1644
            aload 2 /* currentThread */
            aload 0 /* this */
            if_acmpne 1
            invokestatic org.jruby.RubyThread.throwThreadKill:()V
         1: .line 1646
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* runtime */
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyThread.pendingInterruptEnqueue:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         2: .line 1647
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.interrupt:()V
         3: .line 1649
            aload 0 /* this */
            areturn
        end local 2 // org.jruby.RubyThread currentThread
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject v
         0: .line 1653
            aload 0 /* this */
            getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
            aload 1 /* v */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
         1: .line 1654
            aload 0 /* this */
            iconst_0
            putfield org.jruby.RubyThread.pendingInterruptQueueChecked:Z
         2: .line 1655
            return
        end local 1 // org.jruby.runtime.builtin.IRubyObject v
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1664
            aload 0 /* this */
            aload 0 /* this */
            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: .line 1665
            return
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1673
            aload 0 /* this */
            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 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1678
            aload 0 /* this */
            aload 1 /* context */
            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 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject level
         0: .line 1683
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* level */
            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 // org.jruby.runtime.builtin.IRubyObject level
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject level
        start local 3 // org.jruby.runtime.builtin.IRubyObject length
         0: .line 1688
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* level */
            aload 3 /* length */
            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 // org.jruby.runtime.builtin.IRubyObject length
        end local 2 // org.jruby.runtime.builtin.IRubyObject level
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext callerContext
        start local 2 // org.jruby.runtime.builtin.IRubyObject level
        start local 3 // org.jruby.runtime.builtin.IRubyObject length
         0: .line 1692
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getContext:()Lorg/jruby/runtime/ThreadContext;
            astore 4 /* context */
        start local 4 // org.jruby.runtime.ThreadContext context
         1: .line 1693
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
            astore 5 /* nativeThread */
        start local 5 // java.lang.Thread nativeThread
         2: .line 1698
            aload 4 /* context */
            ifnull 3
            aload 5 /* nativeThread */
            ifnull 3
            aload 5 /* nativeThread */
            invokevirtual java.lang.Thread.isAlive:()Z
            ifne 4
      StackMap locals: org.jruby.runtime.ThreadContext java.lang.Thread
      StackMap stack:
         3: aload 1 /* callerContext */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 1701
      StackMap locals:
      StackMap stack:
            aload 4 /* context */
            aload 2 /* level */
            aload 3 /* length */
            iconst_0
         5: .line 1702
            aload 0 /* this */
            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: .line 1700
            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 // java.lang.Thread nativeThread
        end local 4 // org.jruby.runtime.ThreadContext context
        end local 3 // org.jruby.runtime.builtin.IRubyObject length
        end local 2 // org.jruby.runtime.builtin.IRubyObject level
        end local 1 // org.jruby.runtime.ThreadContext callerContext
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1707
            aload 0 /* this */
            aload 1 /* context */
            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 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject level
         0: .line 1712
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* level */
            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 // org.jruby.runtime.builtin.IRubyObject level
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject level
        start local 3 // org.jruby.runtime.builtin.IRubyObject length
         0: .line 1717
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* level */
            aload 3 /* length */
            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 // org.jruby.runtime.builtin.IRubyObject length
        end local 2 // org.jruby.runtime.builtin.IRubyObject level
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext callerContext
        start local 2 // org.jruby.runtime.builtin.IRubyObject level
        start local 3 // org.jruby.runtime.builtin.IRubyObject length
         0: .line 1721
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getContext:()Lorg/jruby/runtime/ThreadContext;
            astore 4 /* context */
        start local 4 // org.jruby.runtime.ThreadContext context
         1: .line 1722
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
            astore 5 /* nativeThread */
        start local 5 // java.lang.Thread nativeThread
         2: .line 1727
            aload 4 /* context */
            ifnull 3
            aload 5 /* nativeThread */
            ifnull 3
            aload 5 /* nativeThread */
            invokevirtual java.lang.Thread.isAlive:()Z
            ifne 4
      StackMap locals: org.jruby.runtime.ThreadContext java.lang.Thread
      StackMap stack:
         3: aload 1 /* callerContext */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 1730
      StackMap locals:
      StackMap stack:
            aload 4 /* context */
            aload 2 /* level */
            aload 3 /* length */
            iconst_0
         5: .line 1731
            aload 0 /* this */
            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: .line 1729
            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 // java.lang.Thread nativeThread
        end local 4 // org.jruby.runtime.ThreadContext context
        end local 3 // org.jruby.runtime.builtin.IRubyObject length
        end local 2 // org.jruby.runtime.builtin.IRubyObject level
        end local 1 // org.jruby.runtime.ThreadContext callerContext
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject state
         0: .line 1736
            aload 2 /* state */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 3
         1: .line 1737
            aload 0 /* this */
            aload 2 /* state */
            putfield org.jruby.RubyThread.reportOnException:Lorg/jruby/runtime/builtin/IRubyObject;
         2: .line 1738
            goto 6
         3: .line 1739
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* state */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 4
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            goto 5
      StackMap locals:
      StackMap stack: org.jruby.RubyThread
         4: aload 1 /* context */
            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: .line 1741
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject state
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1746
            aload 0 /* this */
            getfield org.jruby.RubyThread.reportOnException:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject state
         0: .line 1751
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1753
            aload 2 /* state */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 4
         2: .line 1754
            aload 3 /* runtime */
            aload 2 /* state */
            invokevirtual org.jruby.Ruby.setReportOnException:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         3: .line 1755
            goto 5
         4: .line 1756
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 3 /* runtime */
            aload 3 /* runtime */
            aload 2 /* state */
            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: .line 1759
      StackMap locals:
      StackMap stack:
            aload 1 /* self */
            areturn
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject state
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      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 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
         0: .line 1764
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getReportOnException:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      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 // org.jruby.RubyThread this
         0: .line 1768
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            instanceof org.jruby.internal.runtime.NativeThread
            ifeq 2
         1: .line 1769
            aload 0 /* this */
            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: .line 1773
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.runtime.backtrace.BacktraceData.EMPTY_STACK_TRACE:[Ljava/lang/StackTraceElement;
            areturn
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1777
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.isCurrent:()Z
            ireturn
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.exceptions.RaiseException exception
         0: .line 1781
            aload 0 /* this */
            aload 1 /* exception */
            invokevirtual org.jruby.RubyThread.exceptionRaised:(Ljava/lang/Throwable;)V
         1: .line 1782
            return
        end local 1 // org.jruby.exceptions.RaiseException exception
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 1785
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 1786
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.getReportName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         2: .line 1787
            aload 1 /* runtime */
            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 /* name */
            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: .line 1788
            return
        end local 2 // java.lang.String name
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // java.lang.Throwable throwable
         0: .line 1796
            aload 1 /* throwable */
            instanceof org.jruby.exceptions.Unrescuable
            ifeq 2
         1: .line 1797
            aload 1 /* throwable */
            invokestatic org.jruby.runtime.Helpers.throwException:(Ljava/lang/Throwable;)V
         2: .line 1800
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         3: .line 1802
            getstatic org.jruby.RubyThread.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.isCurrent:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 1806
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* throwable */
            instanceof org.jruby.exceptions.RaiseException
            ifeq 8
         5: .line 1807
            aload 1 /* throwable */
            checkcast org.jruby.exceptions.RaiseException
            astore 4 /* exception */
        start local 4 // org.jruby.exceptions.RaiseException exception
         6: .line 1808
            aload 4 /* exception */
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
            astore 3 /* rubyException */
        end local 4 // org.jruby.exceptions.RaiseException exception
        start local 3 // org.jruby.runtime.builtin.IRubyObject rubyException
         7: .line 1809
            goto 9
        end local 3 // org.jruby.runtime.builtin.IRubyObject rubyException
         8: .line 1810
      StackMap locals:
      StackMap stack:
            aload 2 /* runtime */
            aload 1 /* throwable */
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* rubyException */
        start local 3 // org.jruby.runtime.builtin.IRubyObject rubyException
         9: .line 1814
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getSystemExit:()Lorg/jruby/RubyClass;
            aload 3 /* rubyException */
            invokevirtual org.jruby.RubyClass.isInstance:(Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 12
        10: .line 1815
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
            invokevirtual org.jruby.internal.runtime.ThreadService.getMainThread:()Lorg/jruby/RubyThread;
            aload 3 /* rubyException */
            invokevirtual org.jruby.RubyThread.raise:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        11: .line 1816
            goto 22
      StackMap locals:
      StackMap stack:
        12: aload 0 /* this */
            getfield org.jruby.RubyThread.reportOnException:Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            dup
            istore 4 /* report */
        start local 4 // boolean report
        13: ifne 14
            aload 0 /* this */
            aload 2 /* runtime */
            invokevirtual org.jruby.RubyThread.abortOnException:(Lorg/jruby/Ruby;)Z
            ifeq 20
        14: .line 1817
      StackMap locals: int
      StackMap stack:
            iload 4 /* report */
            ifeq 17
        15: .line 1818
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.printReportExceptionWarning:()V
        16: .line 1819
            aload 2 /* runtime */
            aload 1 /* throwable */
            invokevirtual org.jruby.Ruby.printError:(Ljava/lang/Throwable;)V
        17: .line 1821
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* runtime */
            invokevirtual org.jruby.RubyThread.abortOnException:(Lorg/jruby/Ruby;)Z
            ifeq 22
        18: .line 1822
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getThreadService:()Lorg/jruby/internal/runtime/ThreadService;
            invokevirtual org.jruby.internal.runtime.ThreadService.getMainThread:()Lorg/jruby/RubyThread;
            aload 3 /* rubyException */
            invokevirtual org.jruby.RubyThread.raise:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        19: .line 1824
            goto 22
      StackMap locals:
      StackMap stack:
        20: aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.isDebug:()Z
            ifeq 22
        21: .line 1825
            aload 2 /* runtime */
            aload 1 /* throwable */
            invokevirtual org.jruby.Ruby.printError:(Ljava/lang/Throwable;)V
        end local 4 // boolean report
        22: .line 1828
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* throwable */
            putfield org.jruby.RubyThread.exitingException:Ljava/lang/Throwable;
        23: .line 1829
            return
        end local 3 // org.jruby.runtime.builtin.IRubyObject rubyException
        end local 2 // org.jruby.Ruby runtime
        end local 1 // java.lang.Throwable throwable
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.Ruby runtime
         0: .line 1832
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.isGlobalAbortOnExceptionEnabled:()Z
            ifne 1
            aload 0 /* this */
            getfield org.jruby.RubyThread.abortOnException:Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.runtime.builtin.IRubyObject receiver
         0: .line 1836
            aload 0 /* receiver */
            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 // org.jruby.runtime.builtin.IRubyObject receiver
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.RubyIO io
        start local 2 // int ops
         0: .line 1849
            aload 0 /* this */
            aload 1 /* io */
            invokevirtual org.jruby.RubyIO.getChannel:()Ljava/nio/channels/Channel;
            aload 1 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            iload 2 /* ops */
            invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;I)Z
            ireturn
        end local 2 // int ops
        end local 1 // org.jruby.RubyIO io
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.RubyIO io
        start local 2 // int ops
        start local 3 // long timeout
         0: .line 1865
            aload 0 /* this */
            aload 1 /* io */
            invokevirtual org.jruby.RubyIO.getChannel:()Ljava/nio/channels/Channel;
            aload 1 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            iload 2 /* ops */
            lload 3 /* timeout */
            invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;IJ)Z
            ireturn
        end local 3 // long timeout
        end local 2 // int ops
        end local 1 // org.jruby.RubyIO io
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // java.nio.channels.Channel channel
        start local 2 // org.jruby.util.io.OpenFile fptr
        start local 3 // int ops
         0: .line 1880
            aload 0 /* this */
            aload 1 /* channel */
            aload 2 /* fptr */
            iload 3 /* ops */
            ldc -1
            invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;IJ)Z
            ireturn
        end local 3 // int ops
        end local 2 // org.jruby.util.io.OpenFile fptr
        end local 1 // java.nio.channels.Channel channel
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // java.nio.channels.Channel channel
        start local 2 // org.jruby.RubyIO io
        start local 3 // int ops
         0: .line 1895
            aload 0 /* this */
            aload 1 /* channel */
            aload 2 /* io */
            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 /* io */
            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 /* ops */
            ldc -1
            invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;IJ)Z
            ireturn
        end local 3 // int ops
        end local 2 // org.jruby.RubyIO io
        end local 1 // java.nio.channels.Channel channel
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // java.nio.channels.Channel channel
        start local 2 // org.jruby.RubyIO io
        start local 3 // int ops
        start local 4 // long timeout
         0: .line 1913
            aload 0 /* this */
            aload 1 /* channel */
            aload 2 /* io */
            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 /* io */
            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 /* ops */
            lload 4 /* timeout */
            invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;IJ)Z
            ireturn
        end local 4 // long timeout
        end local 3 // int ops
        end local 2 // org.jruby.RubyIO io
        end local 1 // java.nio.channels.Channel channel
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // java.nio.channels.Channel channel
        start local 2 // org.jruby.util.io.OpenFile fptr
        start local 3 // int ops
        start local 4 // long timeout
         0: .line 1932
            aload 2 /* fptr */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
      StackMap locals:
      StackMap stack: org.jruby.util.io.ChannelFD
         2: astore 6 /* fd */
        start local 6 // org.jruby.util.io.ChannelFD fd
         3: .line 1933
            aload 1 /* channel */
            instanceof java.nio.channels.SelectableChannel
            ifeq 88
            aload 6 /* fd */
            ifnull 88
         4: .line 1934
            aload 1 /* channel */
            checkcast java.nio.channels.SelectableChannel
            astore 7 /* selectable */
        start local 7 // java.nio.channels.SelectableChannel selectable
         5: .line 1937
            iconst_0
            istore 8 /* locked */
        start local 8 // boolean locked
         6: .line 1938
            aload 2 /* fptr */
            ifnull 9
         7: .line 1939
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 8 /* locked */
         8: .line 1940
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 1943
      StackMap locals: org.jruby.util.io.ChannelFD java.nio.channels.SelectableChannel int
      StackMap stack:
            aload 7 /* selectable */
            invokevirtual java.nio.channels.SelectableChannel.blockingLock:()Ljava/lang/Object;
            dup
            astore 9
            monitorenter
        10: .line 1944
            aload 7 /* selectable */
            invokevirtual java.nio.channels.SelectableChannel.isBlocking:()Z
            istore 10 /* oldBlocking */
        start local 10 // boolean oldBlocking
        11: .line 1948
            aload 7 /* selectable */
            iconst_0
            invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        12: .line 1950
            aload 2 /* fptr */
            ifnull 13
            aload 2 /* fptr */
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.addBlockingThread:(Lorg/jruby/RubyThread;)V
        13: .line 1951
      StackMap locals: java.lang.Object int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getSelectorPool:()Lorg/jruby/util/io/SelectorPool;
            aload 7 /* selectable */
            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: .line 1953
            aload 7 /* selectable */
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            iload 3 /* ops */
            invokevirtual java.nio.channels.SelectableChannel.register:(Ljava/nio/channels/Selector;I)Ljava/nio/channels/SelectionKey;
            astore 11 /* key */
        start local 11 // java.nio.channels.SelectionKey key
        15: .line 1955
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.beforeBlockingCall:()V
        16: .line 1958
            lload 4 /* timeout */
            lconst_0
            lcmp
            ifge 19
        17: .line 1959
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            invokevirtual java.nio.channels.Selector.select:()I
            istore 12 /* result */
        start local 12 // int result
        18: .line 1960
            goto 23
        end local 12 // int result
      StackMap locals: java.nio.channels.SelectionKey
      StackMap stack:
        19: lload 4 /* timeout */
            lconst_0
            lcmp
            ifne 22
        20: .line 1961
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            invokevirtual java.nio.channels.Selector.selectNow:()I
            istore 12 /* result */
        start local 12 // int result
        21: .line 1962
            goto 23
        end local 12 // int result
        22: .line 1963
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            lload 4 /* timeout */
            invokevirtual java.nio.channels.Selector.select:(J)I
            istore 12 /* result */
        start local 12 // int result
        23: .line 1967
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
        24: .line 1969
            iload 12 /* result */
            iconst_1
            if_icmpne 45
        25: .line 1970
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            invokevirtual java.nio.channels.Selector.selectedKeys:()Ljava/util/Set;
            astore 13 /* keySet */
        start local 13 // java.util.Set keySet
        26: .line 1972
            aload 13 /* keySet */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            aload 11 /* key */
            if_acmpne 45
        27: .line 1989
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            ifnull 35
        28: .line 1990
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getSelectorPool:()Lorg/jruby/util/io/SelectorPool;
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            invokevirtual org.jruby.util.io.SelectorPool.put:(Ljava/nio/channels/Selector;)V
        29: .line 1992
            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: .line 1995
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            goto 36
        32: .line 1994
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 15
        33: .line 1995
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
        34: .line 1996
            aload 15
            athrow
        35: .line 1995
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
        36: .line 1999
      StackMap locals:
      StackMap stack:
            aload 2 /* fptr */
            ifnull 37
            aload 2 /* fptr */
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.removeBlockingThread:(Lorg/jruby/RubyThread;)V
        37: .line 2003
      StackMap locals:
      StackMap stack:
            aload 7 /* selectable */
            iload 10 /* oldBlocking */
            invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        38: .line 2004
            goto 40
      StackMap locals:
      StackMap stack: java.lang.Exception
        39: pop
        40: .line 2009
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.afterBlockingCall:()V
            aload 9
            monitorexit
        41: .line 2013
            aload 2 /* fptr */
            ifnull 44
        42: .line 2014
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
        43: .line 2015
            iload 8 /* locked */
            ifeq 44
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        44: .line 1973
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 13 // java.util.Set keySet
        45: .line 1989
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            ifnull 53
        46: .line 1990
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getSelectorPool:()Lorg/jruby/util/io/SelectorPool;
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            invokevirtual org.jruby.util.io.SelectorPool.put:(Ljava/nio/channels/Selector;)V
        47: .line 1992
            goto 53
      StackMap locals:
      StackMap stack: java.lang.Exception
        48: pop
        49: .line 1995
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            goto 54
        50: .line 1994
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 15
        51: .line 1995
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
        52: .line 1996
            aload 15
            athrow
        53: .line 1995
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
        54: .line 1999
      StackMap locals:
      StackMap stack:
            aload 2 /* fptr */
            ifnull 55
            aload 2 /* fptr */
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.removeBlockingThread:(Lorg/jruby/RubyThread;)V
        55: .line 2003
      StackMap locals:
      StackMap stack:
            aload 7 /* selectable */
            iload 10 /* oldBlocking */
            invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        56: .line 2004
            goto 58
      StackMap locals:
      StackMap stack: java.lang.Exception
        57: pop
        58: .line 2009
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.afterBlockingCall:()V
            aload 9
            monitorexit
        59: .line 2013
            aload 2 /* fptr */
            ifnull 62
        60: .line 2014
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
        61: .line 2015
            iload 8 /* locked */
            ifeq 62
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        62: .line 1977
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 12 // int result
        end local 11 // java.nio.channels.SelectionKey key
        63: .line 1978
      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 /* ioe */
        start local 12 // java.io.IOException ioe
        64: .line 1979
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            aload 12 /* ioe */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 12 // java.io.IOException ioe
        65: .line 1980
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
        66: .line 1989
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            ifnull 74
        67: .line 1990
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getSelectorPool:()Lorg/jruby/util/io/SelectorPool;
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            invokevirtual org.jruby.util.io.SelectorPool.put:(Ljava/nio/channels/Selector;)V
        68: .line 1992
            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: .line 1995
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            goto 75
        71: .line 1994
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 15
        72: .line 1995
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
        73: .line 1996
            aload 15
            athrow
        74: .line 1995
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
        75: .line 1999
      StackMap locals:
      StackMap stack:
            aload 2 /* fptr */
            ifnull 76
            aload 2 /* fptr */
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.removeBlockingThread:(Lorg/jruby/RubyThread;)V
        76: .line 2003
      StackMap locals:
      StackMap stack:
            aload 7 /* selectable */
            iload 10 /* oldBlocking */
            invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        77: .line 2004
            goto 79
      StackMap locals:
      StackMap stack: java.lang.Exception
        78: pop
        79: .line 2009
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.afterBlockingCall:()V
        80: .line 2010
            aload 14
            athrow
        end local 10 // boolean oldBlocking
        81: .line 1943
      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: .line 2012
      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: .line 2013
            aload 2 /* fptr */
            ifnull 87
        85: .line 2014
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
        86: .line 2015
            iload 8 /* locked */
            ifeq 87
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        87: .line 2017
      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 // boolean locked
        end local 7 // java.nio.channels.SelectableChannel selectable
        88: .line 2020
      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 // org.jruby.util.io.ChannelFD fd
        end local 4 // long timeout
        end local 3 // int ops
        end local 2 // org.jruby.util.io.OpenFile fptr
        end local 1 // java.nio.channels.Channel channel
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 2026
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.setInterrupt:()V
         1: .line 2028
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            astore 1 /* activeSelector */
        start local 1 // java.nio.channels.Selector activeSelector
         2: .line 2029
            aload 1 /* activeSelector */
            ifnull 4
         3: .line 2030
            aload 1 /* activeSelector */
            invokevirtual java.nio.channels.Selector.wakeup:()Ljava/nio/channels/Selector;
            pop
         4: .line 2032
      StackMap locals: java.nio.channels.Selector
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
            astore 2 /* iowait */
        start local 2 // org.jruby.util.io.BlockingIO$Condition iowait
         5: .line 2033
            aload 2 /* iowait */
            ifnull 7
         6: .line 2034
            aload 2 /* iowait */
            invokevirtual org.jruby.util.io.BlockingIO$Condition.cancel:()V
         7: .line 2037
      StackMap locals: org.jruby.util.io.BlockingIO$Condition
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.unblockFunc:Lorg/jruby/RubyThread$Unblocker;
            astore 3 /* task */
        start local 3 // org.jruby.RubyThread$Unblocker task
         8: .line 2038
            aload 3 /* task */
            ifnull 10
         9: .line 2039
            aload 3 /* task */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.RubyThread.unblockArg:Ljava/lang/Object;
            invokeinterface org.jruby.RubyThread$Unblocker.wakeup:(Lorg/jruby/RubyThread;Ljava/lang/Object;)V
        10: .line 2044
      StackMap locals: org.jruby.RubyThread$Unblocker
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentBlockingTask:Lorg/jruby/RubyThread$BlockingTask;
            astore 4 /* t */
        start local 4 // org.jruby.RubyThread$BlockingTask t
        11: .line 2045
            aload 4 /* t */
            ifnull 13
        12: .line 2046
            aload 4 /* t */
            invokeinterface org.jruby.RubyThread$BlockingTask.wakeup:()V
        end local 4 // org.jruby.RubyThread$BlockingTask t
        13: .line 2051
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.notify:()V
        14: .line 2052
            return
        end local 3 // org.jruby.RubyThread$Unblocker task
        end local 2 // org.jruby.util.io.BlockingIO$Condition iowait
        end local 1 // java.nio.channels.Selector activeSelector
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 2056
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.interruptFlag:I
            istore 1 /* oldFlag */
        start local 1 // int oldFlag
         1: .line 2057
            getstatic org.jruby.RubyThread.INTERRUPT_FLAG_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iload 1 /* oldFlag */
            iload 1 /* oldFlag */
            iconst_2
            ior
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 0
         2: .line 2058
            return
        end local 1 // int oldFlag
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.RubyIO io
        start local 3 // int ops
         0: .line 2065
            aload 2 /* io */
            invokevirtual org.jruby.RubyIO.getChannel:()Ljava/nio/channels/Channel;
            astore 4 /* channel */
        start local 4 // java.nio.channels.Channel channel
         1: .line 2067
            aload 4 /* channel */
            instanceof java.nio.channels.SelectableChannel
            ifne 3
         2: .line 2068
            iconst_1
            ireturn
         3: .line 2071
      StackMap locals: java.nio.channels.Channel
      StackMap stack:
            aload 2 /* io */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.addBlockingThread:(Lorg/jruby/RubyThread;)V
         4: .line 2072
            aload 0 /* this */
            aload 4 /* channel */
            iload 3 /* ops */
            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: .line 2073
            aload 0 /* this */
            getfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
            invokevirtual org.jruby.util.io.BlockingIO$Condition.await:()Z
            istore 5 /* ready */
        start local 5 // boolean ready
         6: .line 2076
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
         7: .line 2077
            iload 5 /* ready */
            istore 7
         8: .line 2084
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
         9: .line 2085
            aload 2 /* io */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.removeBlockingThread:(Lorg/jruby/RubyThread;)V
        10: .line 2077
            iload 7
            ireturn
        end local 5 // boolean ready
        11: .line 2078
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 5 /* ioe */
        start local 5 // java.io.IOException ioe
        12: .line 2079
            aload 1 /* context */
            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 /* ioe */
            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 // java.io.IOException ioe
        13: .line 2080
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
        14: .line 2082
            aload 1 /* context */
            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: .line 2083
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        16: .line 2084
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
        17: .line 2085
            aload 2 /* io */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.removeBlockingThread:(Lorg/jruby/RubyThread;)V
        18: .line 2086
            aload 6
            athrow
        end local 4 // java.nio.channels.Channel channel
        end local 3 // int ops
        end local 2 // org.jruby.RubyIO io
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 2089
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
         1: .line 2090
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.enterSleep:()V
         2: .line 2091
            return
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 2094
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
         1: .line 2095
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
         2: .line 2096
            return
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject o
        start local 2 // java.lang.Double timeout
         0: .line 2099
            aload 2 /* timeout */
            ifnull 10
         1: .line 2100
            aload 2 /* timeout */
            invokevirtual java.lang.Double.doubleValue:()D
            ldc 1.0E9
            dmul
            d2l
            lstore 3 /* delay_ns */
        start local 3 // long delay_ns
         2: .line 2101
            invokestatic java.lang.System.nanoTime:()J
            lstore 5 /* start_ns */
        start local 5 // long start_ns
         3: .line 2102
            lload 3 /* delay_ns */
            lconst_0
            lcmp
            ifle 7
         4: .line 2103
            lload 3 /* delay_ns */
            ldc 1000000
            ldiv
            lstore 7 /* delay_ms */
        start local 7 // long delay_ms
         5: .line 2104
            lload 3 /* delay_ns */
            ldc 1000000
            lrem
            l2i
            istore 9 /* delay_ns_remainder */
        start local 9 // int delay_ns_remainder
         6: .line 2105
            aload 0 /* this */
            new org.jruby.RubyThread$SleepTask
            dup
            aload 1 /* o */
            lload 7 /* delay_ms */
            iload 9 /* delay_ns_remainder */
            invokespecial org.jruby.RubyThread$SleepTask.<init>:(Ljava/lang/Object;JI)V
            invokevirtual org.jruby.RubyThread.executeBlockingTask:(Lorg/jruby/RubyThread$BlockingTask;)V
        end local 9 // int delay_ns_remainder
        end local 7 // long delay_ms
         7: .line 2107
      StackMap locals: long long
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 7 /* end_ns */
        start local 7 // long end_ns
         8: .line 2108
            lload 7 /* end_ns */
            lload 5 /* start_ns */
            lsub
            lload 3 /* delay_ns */
            lcmp
            ifgt 9
            iconst_1
            ireturn
      StackMap locals: long
      StackMap stack:
         9: iconst_0
            ireturn
        end local 7 // long end_ns
        end local 5 // long start_ns
        end local 3 // long delay_ns
        10: .line 2110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.jruby.RubyThread$SleepTask
            dup
            aload 1 /* o */
            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: .line 2111
            iconst_1
            ireturn
        end local 2 // java.lang.Double timeout
        end local 1 // org.jruby.runtime.builtin.IRubyObject o
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 2116
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadGroup:Lorg/jruby/RubyThreadGroup;
            areturn
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // java.lang.Object obj
         0: .line 2121
            aload 1 /* obj */
            ifnonnull 2
         1: .line 2122
            iconst_0
            ireturn
         2: .line 2124
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 4
         3: .line 2125
            iconst_0
            ireturn
         4: .line 2127
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast org.jruby.RubyThread
            astore 2 /* other */
        start local 2 // org.jruby.RubyThread other
         5: .line 2128
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            aload 2 /* other */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            if_acmpeq 7
            aload 0 /* this */
            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 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            aload 2 /* other */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 2129
      StackMap locals: org.jruby.RubyThread
      StackMap stack:
            iconst_0
            ireturn
         7: .line 2131
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // org.jruby.RubyThread other
        end local 1 // java.lang.Object obj
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 2136
            bipush 97
            iconst_3
            aload 0 /* this */
            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 /* this */
            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 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 2141
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // java.util.concurrent.locks.Lock lock
         0: .line 2151
            getstatic org.jruby.RubyThread.$assertionsDisabled:Z
            ifne 1
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2152
      StackMap locals:
      StackMap stack:
            aload 1 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 2153
            aload 0 /* this */
            getfield org.jruby.RubyThread.heldLocks:Ljava/util/List;
            aload 1 /* lock */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 2154
            return
        end local 1 // java.util.concurrent.locks.Lock lock
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // java.util.concurrent.locks.Lock lock
         0: .line 2164
            getstatic org.jruby.RubyThread.$assertionsDisabled:Z
            ifne 1
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* lock */
            new org.jruby.RubyThread$2
            dup
            aload 0 /* this */
            aload 1 /* lock */
            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: .line 2178
            return
        end local 1 // java.util.concurrent.locks.Lock lock
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // java.util.concurrent.locks.Lock lock
         0: .line 2188
            getstatic org.jruby.RubyThread.$assertionsDisabled:Z
            ifne 1
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2189
      StackMap locals:
      StackMap stack:
            aload 1 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.tryLock:()Z
            istore 2 /* locked */
        start local 2 // boolean locked
         2: .line 2190
            iload 2 /* locked */
            ifeq 4
         3: .line 2191
            aload 0 /* this */
            getfield org.jruby.RubyThread.heldLocks:Ljava/util/List;
            aload 1 /* lock */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 2193
      StackMap locals: int
      StackMap stack:
            iload 2 /* locked */
            ireturn
        end local 2 // boolean locked
        end local 1 // java.util.concurrent.locks.Lock lock
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // java.util.concurrent.locks.Lock lock
         0: .line 2203
            getstatic org.jruby.RubyThread.$assertionsDisabled:Z
            ifne 1
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2204
      StackMap locals:
      StackMap stack:
            aload 1 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         2: .line 2205
            aload 0 /* this */
            getfield org.jruby.RubyThread.heldLocks:Ljava/util/List;
            aload 1 /* lock */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         3: .line 2206
            return
        end local 1 // java.util.concurrent.locks.Lock lock
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 2212
            getstatic org.jruby.RubyThread.$assertionsDisabled:Z
            ifne 1
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* lock */
        start local 1 // java.util.concurrent.locks.Lock lock
         3: .line 2215
            aload 1 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         4: .line 2216
            goto 7
      StackMap locals: org.jruby.RubyThread java.util.concurrent.locks.Lock java.util.Iterator
      StackMap stack: java.lang.IllegalMonitorStateException
         5: pop
         6: .line 2218
            aload 0 /* this */
            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 /* lock */
            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 /* this */
            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 // java.util.concurrent.locks.Lock lock
         7: .line 2213
      StackMap locals: org.jruby.RubyThread top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 2221
            return
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // java.util.concurrent.locks.Lock lock
         0: .line 2227
            aload 0 /* this */
            aload 1 /* lock */
            lconst_0
            invokevirtual org.jruby.RubyThread.sleep:(Ljava/util/concurrent/locks/Lock;J)V
         1: .line 2228
            return
        end local 1 // java.util.concurrent.locks.Lock lock
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // java.util.concurrent.locks.Lock lock
        start local 2 // long millis
         0: .line 2234
            getstatic org.jruby.RubyThread.$assertionsDisabled:Z
            ifne 1
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* lock */
            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 /* this */
            lload 2 /* millis */
            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: .line 2251
            return
        end local 2 // long millis
        end local 1 // java.util.concurrent.locks.Lock lock
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
         0: .line 2254
            new java.lang.StringBuilder
            dup
            ldc "0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            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 // org.jruby.RubyThread this
      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 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.Block block
         0: .line 2262
            aload 1 /* recv */
            aload 0 /* context */
            ldc "warn"
            aload 0 /* context */
            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: .line 2263
            aload 0 /* context */
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            invokestatic org.jruby.RubyThread.getMutexForThreadExclusive:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;)Lorg/jruby/ext/thread/Mutex;
            aload 0 /* context */
            aload 2 /* block */
            invokevirtual org.jruby.ext.thread.Mutex.synchronize:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      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 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyClass recv
         0: .line 2267
            aload 1 /* recv */
            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 /* mutex */
        start local 2 // org.jruby.ext.thread.Mutex mutex
         1: .line 2268
            aload 2 /* mutex */
            ifnull 2
            aload 2 /* mutex */
            areturn
         2: .line 2269
      StackMap locals: org.jruby.ext.thread.Mutex
      StackMap stack:
            aload 1 /* recv */
            dup
            astore 3
            monitorenter
         3: .line 2270
            aload 1 /* recv */
            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 /* mutex */
         4: .line 2271
            aload 2 /* mutex */
            ifnonnull 7
         5: .line 2272
            aload 0 /* context */
            aload 0 /* context */
            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 /* mutex */
         6: .line 2273
            aload 1 /* recv */
            ldc "MUTEX_FOR_THREAD_EXCLUSIVE"
            aload 2 /* mutex */
            iconst_1
            invokevirtual org.jruby.RubyClass.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         7: .line 2275
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 2 /* mutex */
            aload 3
            monitorexit
         8: areturn
         9: .line 2269
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        10: athrow
        end local 2 // org.jruby.ext.thread.Mutex mutex
        end local 1 // org.jruby.RubyClass recv
        end local 0 // org.jruby.runtime.ThreadContext context
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 2287
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            astore 2 /* context */
        start local 2 // org.jruby.runtime.ThreadContext context
         1: .line 2288
            aload 0 /* this */
            aload 2 /* context */
            aload 2 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            aload 1 /* args */
            invokevirtual org.jruby.RubyThread.genericRaise:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyThread;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         2: .line 2289
            return
        end local 2 // org.jruby.runtime.ThreadContext context
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.internal.runtime.ThreadService$Event event
         0: .line 2293
            return
        end local 1 // org.jruby.internal.runtime.ThreadService$Event event
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2297
            return
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.RubyIO io
         0: .line 2304
            aload 0 /* this */
            aload 1 /* io */
            bipush 16
            invokevirtual org.jruby.RubyThread.select:(Lorg/jruby/RubyIO;I)Z
            ireturn
        end local 1 // org.jruby.RubyIO io
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 2309
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.backtrace:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 2314
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 2
                    0: 1
                    1: 2
                    2: 3
              default: 4
          }
         1: .line 2316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.backtrace:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 2318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            invokevirtual org.jruby.RubyThread.backtrace:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 2320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            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: .line 2322
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* args */
            iconst_0
            iconst_2
            invokestatic org.jruby.runtime.Arity.checkArgumentCount:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;II)I
            pop
         5: .line 2323
            aconst_null
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 2329
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 2
                    0: 1
                    1: 2
                    2: 3
              default: 4
          }
         1: .line 2331
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.backtrace_locations:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 2333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            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: .line 2335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            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: .line 2337
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* args */
            iconst_0
            iconst_2
            invokestatic org.jruby.runtime.Arity.checkArgumentCount:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;II)I
            pop
         5: .line 2338
            aconst_null
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 2344
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 2346
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 0 /* recv */
            invokestatic org.jruby.RubyThread.pass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      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: .line 109
            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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext ctx
        start local 2 // int lev
        start local 3 // int len
         0: .line 1702
            getstatic org.jruby.RubyThread.WALKER:Lcom/headius/backport9/stack/StackWalker;
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
            aload 1 /* ctx */
            iload 2 /* lev */
            iload 3 /* len */
            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 // int len
        end local 2 // int lev
        end local 1 // org.jruby.runtime.ThreadContext ctx
        end local 0 // org.jruby.RubyThread this
      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 // org.jruby.RubyThread this
        start local 1 // org.jruby.runtime.ThreadContext ctx
        start local 2 // int lev
        start local 3 // int len
         0: .line 1731
            getstatic org.jruby.RubyThread.WALKER:Lcom/headius/backport9/stack/StackWalker;
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
            aload 1 /* ctx */
            iload 2 /* lev */
            iload 3 /* len */
            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 // int len
        end local 2 // int lev
        end local 1 // org.jruby.runtime.ThreadContext ctx
        end local 0 // org.jruby.RubyThread this
      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 // java.util.stream.Stream stream
         0: .line 1702
            aload 0
            iload 1
            iload 2
            aload 3 /* stream */
            invokevirtual org.jruby.runtime.ThreadContext.createCallerBacktrace:(IILjava/util/stream/Stream;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // java.util.stream.Stream stream
      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 // java.util.stream.Stream stream
         0: .line 1731
            aload 0
            iload 1
            iload 2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 3 /* stream */
            invokevirtual org.jruby.runtime.ThreadContext.createCallerLocations:(ILjava/lang/Integer;Ljava/util/stream/Stream;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // java.util.stream.Stream stream
      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"})