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 646
            iconst_0
            anewarray org.jruby.RubyHash
            putstatic org.jruby.RubyThread.NULL_ARRAY:[Lorg/jruby/RubyHash;
         8: .line 769
            new org.jruby.RubyThread$1
            dup
            invokespecial org.jruby.RubyThread$1.<init>:()V
            putstatic org.jruby.RubyThread.HandleInterruptVisitor:Lorg/jruby/RubyHash$VisitorWithState;
         9: .line 2253
            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 2064
            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=7, 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
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 6 /* err */
            aastore
            dup
            iconst_1
            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:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.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:
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 6 /* err */
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.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 435
            aload 0 /* runtime */
            aload 1 /* threadClass */
            invokevirtual org.jruby.Ruby.setThread:(Lorg/jruby/RubyClass;)V
         2: .line 437
            aload 1 /* threadClass */
            getstatic org.jruby.runtime.ClassIndex.THREAD:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.RubyClass.setClassIndex:(Lorg/jruby/runtime/ClassIndex;)V
         3: .line 438
            aload 1 /* threadClass */
            ldc Lorg/jruby/RubyThread;
            invokevirtual org.jruby.RubyClass.setReifiedClass:(Ljava/lang/Class;)V
         4: .line 440
            aload 1 /* threadClass */
            ldc Lorg/jruby/RubyThread;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         5: .line 442
            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
         6: .line 444
            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;
         7: .line 445
            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
         8: .line 448
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getDefaultThreadGroup:()Lorg/jruby/RubyThreadGroup;
            aload 2 /* rubyThread */
            invokevirtual org.jruby.RubyThreadGroup.addDirectly:(Lorg/jruby/RubyThread;)V
         9: .line 450
            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
        10: .line 453
            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
        11: .line 454
            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
        12: .line 456
            aload 4 /* location */
            ldc Lorg/jruby/RubyThread$Location;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
        13: .line 458
            aload 0 /* runtime */
            aload 4 /* location */
            invokevirtual org.jruby.Ruby.setLocation:(Lorg/jruby/RubyClass;)V
        14: .line 460
            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   15     0      runtime  Lorg/jruby/Ruby;
            1   15     1  threadClass  Lorg/jruby/RubyClass;
            6   15     2   rubyThread  Lorg/jruby/RubyThread;
           11   15     3    backtrace  Lorg/jruby/RubyClass;
           12   15     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 552
            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 565
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 2
         1: .line 566
            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 568
      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 573
            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 577
            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 578
            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 582
            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 587
            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 589
            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 590
            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 591
            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 593
            aload 5 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.preAdoptThread:()V
         5: .line 596
            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 598
            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 603
            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 604
      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 606
      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 610
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 612
            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 613
            aload 4 /* thread */
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
         3: .line 614
            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 615
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getLine:()I
            putfield org.jruby.RubyThread.line:I
         5: .line 616
            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 617
            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 619
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.addToCorrectThreadGroup:(Lorg/jruby/runtime/ThreadContext;)V
         8: .line 622
            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 625
            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 627
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            invokeinterface org.jruby.internal.runtime.ThreadLike.start:()V
        11: .line 631
            invokestatic java.lang.Thread.yield:()V
        12: .line 633
            aload 0 /* this */
        13: areturn
        end local 4 // java.lang.Thread thread
        14: .line 635
      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 636
            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 637
            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 639
      StackMap locals: java.lang.OutOfMemoryError
      StackMap stack:
            aload 4 /* oome */
            athrow
        end local 4 // java.lang.OutOfMemoryError oome
        18: .line 641
      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 642
            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 651
            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 652
            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 651
            iinc 4 1
      StackMap locals:
      StackMap stack:
         4: iload 4
            iload 5
            if_icmplt 1
         5: .line 654
            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 661
            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 662
            aload 5 /* name */
         2: .line 663
            ldc "Ruby-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 664
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getRuntimeNumber:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         4: .line 665
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         5: .line 666
            ldc "Thread-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 667
            aload 0 /* runtime */
            invokestatic org.jruby.RubyThread.incAndGetThreadCount:(Lorg/jruby/Ruby;)J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
         7: .line 668
            aload 2 /* file */
            ifnull 14
         8: .line 669
            aload 5 /* name */
         9: .line 670
            bipush 58
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        10: .line 671
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        11: .line 672
            aload 2 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 673
            bipush 58
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        13: .line 674
            iload 3 /* line */
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        14: .line 676
      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 678
            aload 1 /* thread */
            aload 4 /* newName */
            invokevirtual java.lang.Thread.setName:(Ljava/lang/String;)V
        16: .line 679
            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 682
            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 686
            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 687
            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 689
            iload 2 /* callInit */
            ifeq 6
         3: .line 690
            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 692
            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 693
            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 697
      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 700
      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 704
            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 705
            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 706
            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 707
            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 708
            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 712
            aload 0 /* this */
            aload 1 /* result */
            putfield org.jruby.RubyThread.finalResult:Lorg/jruby/runtime/builtin/IRubyObject;
         1: .line 713
            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 716
            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 717
            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 720
            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 721
            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 725
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.anyInterrupted:()Z
            ifeq 2
         1: .line 726
            aload 0 /* this */
            aload 1 /* context */
            iconst_1
            invokevirtual org.jruby.RubyThread.executeInterrupts:(Lorg/jruby/runtime/ThreadContext;Z)V
         2: .line 728
      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 732
            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 736
            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 741
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 2
         1: .line 742
            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 745
      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 747
            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 749
            aload 0 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            astore 5 /* thread */
        start local 5 // org.jruby.RubyThread thread
         5: .line 750
            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 751
            aload 5 /* thread */
            getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 9
         7: .line 752
            aload 5 /* thread */
            iconst_0
            putfield org.jruby.RubyThread.pendingInterruptQueueChecked:Z
         8: .line 753
            aload 5 /* thread */
            invokevirtual org.jruby.RubyThread.setInterrupt:()V
         9: .line 758
      StackMap locals: org.jruby.RubyHash org.jruby.RubyThread
      StackMap stack:
            aload 5 /* thread */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
        10: .line 760
            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 762
            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 763
            aload 5 /* thread */
            invokevirtual org.jruby.RubyThread.setInterrupt:()V
        13: .line 765
            aload 5 /* thread */
            aload 0 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        14: .line 760
            aload 7
            areturn
        15: .line 761
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        16: .line 762
            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 763
            aload 5 /* thread */
            invokevirtual org.jruby.RubyThread.setInterrupt:()V
        18: .line 765
            aload 5 /* thread */
            aload 0 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        19: .line 766
            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 777
            aload 1 /* sym */
            instanceof org.jruby.RubySymbol
            ifeq 8
         1: .line 778
            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 779
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         6: .line 780
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
         7: .line 781
      StackMap locals:
      StackMap stack:
            iconst_3
            ireturn
         8: .line 782
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
         9: .line 784
            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 789
            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 794
            aload 0 /* this */
            getfield org.jruby.RubyThread.pendingInterruptQueue:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 2
         1: .line 795
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            areturn
         2: .line 797
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmpne 9
         3: .line 798
            aload 2 /* args */
            iconst_0
            aaload
            astore 3 /* err */
        start local 3 // org.jruby.runtime.builtin.IRubyObject err
         4: .line 799
            aload 3 /* err */
            instanceof org.jruby.RubyModule
            ifne 6
         5: .line 800
            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 802
      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 804
      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 808
            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 809
            goto 4
         2: .line 810
      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 811
            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 809
      StackMap locals:
      StackMap stack:
            aload 2 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 813
            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 818
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 820
            aload 1 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 8
         2: .line 821
            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 822
            aload 3 /* nameStr */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            astore 4 /* enc */
        start local 4 // org.jcodings.Encoding enc
         4: .line 823
            aload 4 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 6
         5: .line 824
            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 826
      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 827
            goto 9
         8: .line 828
      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 831
      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 836
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 838
            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 840
            aload 2 /* rubyName */
            ifnonnull 3
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 842
      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 853
            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 854
            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 859
            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 860
            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 865
            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 870
            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 875
            invokestatic java.lang.Thread.yield:()V
         1: .line 877
            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 882
            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 883
            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 885
            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 890
            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 891
            aload 2 /* group */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 4
         2: .line 892
            aload 2 /* group */
            checkcast org.jruby.RubyThreadGroup
            aload 0 /* this */
            invokevirtual org.jruby.RubyThreadGroup.addDirectly:(Lorg/jruby/RubyThread;)V
         3: .line 893
            goto 5
         4: .line 894
      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 896
      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 899
            aload 1 /* originalKey */
            instanceof org.jruby.RubySymbol
            ifeq 1
            aload 1 /* originalKey */
            checkcast org.jruby.RubySymbol
            areturn
         1: .line 901
      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 903
            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 905
      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 909
            aload 0 /* this */
            getfield org.jruby.RubyThread.fiberLocalVariables:Ljava/util/Map;
            astore 1 /* locals */
        start local 1 // java.util.Map locals
         1: .line 910
            aload 1 /* locals */
            ifnonnull 9
         2: .line 911
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 912
            aload 0 /* this */
            getfield org.jruby.RubyThread.fiberLocalVariables:Ljava/util/Map;
            astore 1 /* locals */
         4: .line 913
            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 911
      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 916
      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 921
            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 925
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadLocalVariables:Ljava/util/Map;
            astore 1 /* locals */
        start local 1 // java.util.Map locals
         1: .line 926
            aload 1 /* locals */
            ifnonnull 9
         2: .line 927
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 928
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadLocalVariables:Ljava/util/Map;
            astore 1 /* locals */
         4: .line 929
            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 927
      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 932
      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 937
            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 941
            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 946
            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 948
            aload 4 /* value */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 4
         2: .line 949
            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 951
      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 954
      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 959
            aload 4 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            istore 5 /* blockGiven */
        start local 5 // boolean blockGiven
         1: .line 961
            iload 5 /* blockGiven */
            ifeq 3
         2: .line 962
            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 965
      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 967
            aload 6 /* value */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 7
         5: .line 968
            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 969
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* _default */
            areturn
         7: .line 972
      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 977
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
            astore 2 /* key */
         1: .line 978
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getFiberLocals:()Ljava/util/Map;
            astore 3 /* locals */
        start local 3 // java.util.Map locals
         2: .line 979
            aload 3 /* locals */
            dup
            astore 4
            monitorenter
         3: .line 981
            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 979
      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 987
            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 992
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.checkFrozen:()V
         1: .line 994
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
            astore 1 /* key */
         2: .line 995
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getFiberLocals:()Ljava/util/Map;
            astore 3 /* locals */
        start local 3 // java.util.Map locals
         3: .line 996
            aload 3 /* locals */
            dup
            astore 4
            monitorenter
         4: .line 997
            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 996
            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 999
      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 1004
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
            astore 2 /* key */
         1: .line 1005
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getFiberLocals:()Ljava/util/Map;
            astore 3 /* locals */
        start local 3 // java.util.Map locals
         2: .line 1006
            aload 3 /* locals */
            dup
            astore 4
            monitorenter
         3: .line 1007
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* locals */
            aload 2 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            aload 4
            monitorexit
         4: areturn
         5: .line 1006
      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 1013
            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 1018
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getFiberLocals:()Ljava/util/Map;
            astore 1 /* locals */
        start local 1 // java.util.Map locals
         1: .line 1020
            aload 1 /* locals */
            dup
            astore 3
            monitorenter
         2: .line 1021
            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 1022
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: .line 1023
            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 1024
            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 1023
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 4 // int i
         8: .line 1020
            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 1027
      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 1032
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
            astore 2 /* key */
         1: .line 1033
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getThreadLocals:()Ljava/util/Map;
            astore 3 /* locals */
        start local 3 // java.util.Map locals
         2: .line 1034
            aload 3 /* locals */
            dup
            astore 4
            monitorenter
         3: .line 1035
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* locals */
            aload 2 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            aload 4
            monitorexit
         4: areturn
         5: .line 1034
      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 1041
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
            astore 2 /* key */
         1: .line 1042
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getThreadLocals:()Ljava/util/Map;
            astore 3 /* locals */
        start local 3 // java.util.Map locals
         2: .line 1043
            aload 3 /* locals */
            dup
            astore 4
            monitorenter
         3: .line 1045
            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 1043
      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 1051
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.checkFrozen:()V
         1: .line 1052
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual org.jruby.RubyThread.getSymbolKey:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubySymbol;
            astore 2 /* key */
         2: .line 1053
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getThreadLocals:()Ljava/util/Map;
            astore 4 /* locals */
        start local 4 // java.util.Map locals
         3: .line 1054
            aload 4 /* locals */
            dup
            astore 5
            monitorenter
         4: .line 1055
            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 1054
            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 1057
      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 1062
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getThreadLocals:()Ljava/util/Map;
            astore 2 /* locals */
        start local 2 // java.util.Map locals
         1: .line 1064
            aload 2 /* locals */
            dup
            astore 4
            monitorenter
         2: .line 1065
            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 1066
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: .line 1067
            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 1068
            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 1067
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 5 // int i
         8: .line 1064
            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 1071
      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 1077
            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 1082
            aload 0 /* this */
            aload 1 /* val */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            putfield org.jruby.RubyThread.abortOnException:Z
         1: .line 1083
            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 1088
            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 1093
            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 1098
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1099
            ldc 9223372036854775807
            lstore 4 /* timeoutMillis */
        start local 4 // long timeoutMillis
         2: .line 1101
            aload 2 /* args */
            arraylength
            ifle 10
            aload 2 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 10
         3: .line 1102
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmple 5
         4: .line 1103
            aload 3 /* runtime */
            aload 2 /* args */
            arraylength
            iconst_1
            invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 1107
      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 1108
            lload 4 /* timeoutMillis */
            lconst_0
            lcmp
            ifgt 10
         7: .line 1111
            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 1112
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         9: .line 1114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        10: .line 1119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.isCurrent:()Z
            ifeq 12
        11: .line 1120
            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 1123
      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 1126
            aload 6 /* currentThread */
            invokevirtual org.jruby.RubyThread.enterSleep:()V
        14: .line 1128
            lload 4 /* timeoutMillis */
            ldc 200
            invokestatic java.lang.Math.min:(JJ)J
            lstore 7 /* timeToWait */
        start local 7 // long timeToWait
        15: .line 1132
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 9 /* start */
        start local 9 // long start
        16: .line 1134
      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 1135
            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 1136
            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 1137
            goto 33
        20: .line 1139
      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 1143
            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 1144
            aload 7 /* ie */
            invokevirtual java.lang.InterruptedException.printStackTrace:()V
        24: .line 1145
            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 1150
      StackMap locals:
      StackMap stack:
            aload 6 /* currentThread */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
            goto 34
        26: .line 1146
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutionException
            astore 7 /* ie */
        start local 7 // java.util.concurrent.ExecutionException ie
        27: .line 1147
            aload 7 /* ie */
            invokevirtual java.util.concurrent.ExecutionException.printStackTrace:()V
        28: .line 1148
            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 1150
      StackMap locals:
      StackMap stack:
            aload 6 /* currentThread */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
            goto 34
        30: .line 1149
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        31: .line 1150
            aload 6 /* currentThread */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
        32: .line 1151
            aload 11
            athrow
        33: .line 1150
      StackMap locals:
      StackMap stack:
            aload 6 /* currentThread */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
        34: .line 1153
      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 1154
            aload 7 /* exception */
            ifnull 41
        36: .line 1155
            aload 7 /* exception */
            instanceof org.jruby.exceptions.RaiseException
            ifeq 39
        37: .line 1157
            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 1158
            goto 40
        39: .line 1159
      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 1161
      StackMap locals:
      StackMap stack:
            aload 7 /* exception */
            invokestatic org.jruby.runtime.Helpers.throwException:(Ljava/lang/Throwable;)V
        41: .line 1165
      StackMap locals:
      StackMap stack:
            aload 6 /* currentThread */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        42: .line 1167
            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 1168
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        44: .line 1170
      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 1176
            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 1177
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 1178
            aload 0 /* this */
            getfield org.jruby.RubyThread.finalResult:Lorg/jruby/runtime/builtin/IRubyObject;
            aload 2
            monitorexit
         3: areturn
         4: .line 1177
      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 1184
            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 1189
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadGroup:Lorg/jruby/RubyThreadGroup;
            astore 1 /* group */
        start local 1 // org.jruby.RubyThreadGroup group
         1: .line 1190
            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 1194
            aload 0 /* this */
            aload 1 /* rubyThreadGroup */
            putfield org.jruby.RubyThread.threadGroup:Lorg/jruby/RubyThreadGroup;
         1: .line 1195
            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 1199
            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 1204
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1205
            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 1207
            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 1208
            aload 3 /* result */
            bipush 58
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
         4: .line 1209
            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 1210
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         6: .line 1211
            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 1212
            aload 5 /* id */
            invokestatic org.jruby.RubyThread.notEmpty:(Ljava/lang/String;)Z
            ifeq 10
         8: .line 1213
            aload 3 /* result */
            bipush 64
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
         9: .line 1214
            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 1216
      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 1217
            aload 3 /* result */
            bipush 64
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
        12: .line 1218
            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 1219
            aload 3 /* result */
            bipush 58
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
        14: .line 1220
            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 1222
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            bipush 32
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
        16: .line 1223
            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 1224
            aload 3 /* result */
            bipush 62
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
        18: .line 1225
            aload 3 /* result */
            aload 4
            monitorexit
        19: areturn
        end local 5 // java.lang.String id
        20: .line 1210
      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 1230
            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 1235
            aload 0 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            astore 2 /* rubyThread */
        start local 2 // org.jruby.RubyThread rubyThread
         1: .line 1237
            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 1238
            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 1241
      StackMap locals: org.jruby.RubyThread
      StackMap stack:
            aload 2 /* rubyThread */
            dup
            astore 3
            monitorenter
         4: .line 1242
            aload 2 /* rubyThread */
            aload 0 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
         5: .line 1243
            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 1245
            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 1246
            aload 2 /* rubyThread */
            invokevirtual java.lang.Object.wait:()V
         8: .line 1247
            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 1249
            aload 2 /* rubyThread */
            aload 0 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        11: .line 1250
            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 1248
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        13: .line 1249
            aload 2 /* rubyThread */
            aload 0 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        14: .line 1250
            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 1251
            aload 5
            athrow
        16: .line 1249
      StackMap locals:
      StackMap stack:
            aload 2 /* rubyThread */
            aload 0 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        17: .line 1250
            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 1241
      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 1254
      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 1259
            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 1260
      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 1265
            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 1267
            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 1273
            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 1278
            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 1279
            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 1282
      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 1283
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.interrupt:()V
         4: .line 1285
            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 1290
            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 1295
            aload 1 /* priority */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 2 /* iPriority */
        start local 2 // int iPriority
         1: .line 1297
            iload 2 /* iPriority */
            bipush -3
            if_icmpge 4
         2: .line 1298
            bipush -3
            istore 2 /* iPriority */
         3: .line 1299
            goto 6
      StackMap locals: int
      StackMap stack:
         4: iload 2 /* iPriority */
            iconst_3
            if_icmple 6
         5: .line 1300
            iconst_3
            istore 2 /* iPriority */
         6: .line 1303
      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 1304
            iload 2 /* iPriority */
            invokestatic org.jruby.RubyThread.rubyPriorityToJavaPriority:(I)I
            istore 3 /* jPriority */
        start local 3 // int jPriority
         8: .line 1305
            iload 3 /* jPriority */
            iconst_1
            if_icmpge 11
         9: .line 1306
            iconst_1
            istore 3 /* jPriority */
        10: .line 1307
            goto 13
      StackMap locals: int
      StackMap stack:
        11: iload 3 /* jPriority */
            bipush 10
            if_icmple 13
        12: .line 1308
            bipush 10
            istore 3 /* jPriority */
        13: .line 1310
      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 1313
      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 1323
            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 1324
            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 1328
            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 1329
            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 1340
            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 1341
            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 1353
            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 1354
            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 1359
            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 1364
            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 1368
            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 1370
      StackMap locals:
      StackMap stack:
            aload 2 /* currentThread */
            aload 0 /* this */
            if_acmpne 4
         2: .line 1371
            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 1372
            getstatic org.jruby.RubyThread.$assertionsDisabled:Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 1375
      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 1377
            aload 0 /* this */
            aload 4 /* exception */
            invokevirtual org.jruby.RubyThread.pendingInterruptEnqueue:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         6: .line 1378
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.interrupt:()V
         7: .line 1380
            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 1384
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 1385
            aload 2 /* args */
            arraylength
            ifne 5
         2: .line 1386
            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 1388
            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 1390
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.errorInfo:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         5: .line 1393
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_0
            aaload
            astore 5 /* arg */
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg
         6: .line 1397
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmpne 16
         7: .line 1398
            aload 5 /* arg */
            instanceof org.jruby.RubyString
            ifeq 10
         8: .line 1399
            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 1400
            goto 19
        end local 6 // org.jruby.runtime.builtin.IRubyObject tmp
        10: .line 1401
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 5 /* arg */
            instanceof org.jruby.java.proxies.ConcreteJavaProxy
            ifeq 12
        11: .line 1402
            aload 5 /* arg */
            areturn
        12: .line 1404
      StackMap locals:
      StackMap stack:
            aload 5 /* arg */
            ldc "exception"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
            ifne 14
        13: .line 1405
            aload 4 /* runtime */
            ldc "exception class/object expected"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        14: .line 1407
      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 1409
            goto 19
        end local 6 // org.jruby.runtime.builtin.IRubyObject tmp
        16: .line 1410
      StackMap locals:
      StackMap stack:
            aload 5 /* arg */
            ldc "exception"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
            ifne 18
        17: .line 1411
            aload 4 /* runtime */
            ldc "exception class/object expected"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        18: .line 1414
      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 1417
      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 1418
            aload 4 /* runtime */
            ldc "exception object expected"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        21: .line 1421
      StackMap locals:
      StackMap stack:
            aload 6 /* tmp */
            checkcast org.jruby.RubyException
            astore 7 /* exception */
        start local 7 // org.jruby.RubyException exception
        22: .line 1423
            aload 2 /* args */
            arraylength
            iconst_3
            if_icmpne 24
        23: .line 1424
            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 1427
      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 1428
            aload 8 /* cause */
            aload 7 /* exception */
            if_acmpeq 27
        26: .line 1429
            aload 7 /* exception */
            aload 8 /* cause */
            invokevirtual org.jruby.RubyException.setCause:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        27: .line 1432
      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 1437
            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 1450
            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 1451
      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 1453
            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 1454
            lload 1 /* millis */
            lconst_0
            lcmp
            ifeq 4
            lload 3 /* timeSlept */
            lload 1 /* millis */
            lcmp
            iflt 6
         4: .line 1463
      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 1456
            iconst_1
            ireturn
         6: .line 1463
      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 1459
            iconst_0
            ireturn
        end local 3 // long timeSlept
         8: .line 1461
      StackMap locals: org.jruby.RubyThread long
      StackMap stack: java.lang.Throwable
            astore 5
         9: .line 1463
            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 1464
            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 1468
            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 1473
            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 1474
            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 1475
            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 1478
      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 1560
            aload 0 /* this */
            aload 1 /* task */
            putfield org.jruby.RubyThread.currentBlockingTask:Lorg/jruby/RubyThread$BlockingTask;
         1: .line 1561
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.enterSleep:()V
         2: .line 1562
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
         3: .line 1563
            aload 1 /* task */
            invokeinterface org.jruby.RubyThread$BlockingTask.run:()V
         4: .line 1564
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 1565
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
         7: .line 1566
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentBlockingTask:Lorg/jruby/RubyThread$BlockingTask;
         8: .line 1567
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
         9: .line 1568
            aload 2
            athrow
        10: .line 1565
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
        11: .line 1566
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentBlockingTask:Lorg/jruby/RubyThread$BlockingTask;
        12: .line 1567
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
        13: .line 1569
            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 1572
            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 1576
            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 1578
            aload 0 /* this */
            aload 2 /* data */
            putfield org.jruby.RubyThread.unblockArg:Ljava/lang/Object;
         2: .line 1579
            aload 0 /* this */
            aload 4 /* task */
            putfield org.jruby.RubyThread.unblockFunc:Lorg/jruby/RubyThread$Unblocker;
         3: .line 1582
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
         4: .line 1584
            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 1586
            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 1588
            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 1589
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.unblockFunc:Lorg/jruby/RubyThread$Unblocker;
         8: .line 1590
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.unblockArg:Ljava/lang/Object;
         9: .line 1591
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        10: .line 1586
            aload 7
            areturn
        11: .line 1587
      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 1588
            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 1589
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.unblockFunc:Lorg/jruby/RubyThread$Unblocker;
        14: .line 1590
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.unblockArg:Ljava/lang/Object;
        15: .line 1591
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
        16: .line 1592
            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 1596
            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 1597
            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 1600
            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 1601
            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 1603
      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 1606
            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 1608
            aload 1 /* status */
            getstatic org.jruby.RubyThread$Status.NATIVE:Lorg/jruby/RubyThread$Status;
            if_acmpeq 2
            aload 1 /* status */
            areturn
         2: .line 1610
      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 1614
            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 1618
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.RubyThread$Status.RUN:Lorg/jruby/RubyThread$Status;
            areturn
         2: .line 1622
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.RubyThread$Status.SLEEP:Lorg/jruby/RubyThread$Status;
            areturn
         3: .line 1624
      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 1630
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 1632
            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 1634
            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 1638
            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 1640
            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 1645
            aload 2 /* currentThread */
            aload 0 /* this */
            if_acmpne 1
            invokestatic org.jruby.RubyThread.throwThreadKill:()V
         1: .line 1647
      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 1648
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.interrupt:()V
         3: .line 1650
            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 1654
            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 1655
            aload 0 /* this */
            iconst_0
            putfield org.jruby.RubyThread.pendingInterruptQueueChecked:Z
         2: .line 1656
            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 1665
            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 1666
            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 1674
            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 1679
            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 1684
            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 1689
            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 1693
            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 1694
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
            astore 5 /* nativeThread */
        start local 5 // java.lang.Thread nativeThread
         2: .line 1699
            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 1702
      StackMap locals:
      StackMap stack:
            aload 4 /* context */
            aload 2 /* level */
            aload 3 /* length */
            iconst_0
         5: .line 1703
            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 1701
            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 1708
            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 1713
            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 1718
            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 1722
            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 1723
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getNativeThread:()Ljava/lang/Thread;
            astore 5 /* nativeThread */
        start local 5 // java.lang.Thread nativeThread
         2: .line 1728
            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 1731
      StackMap locals:
      StackMap stack:
            aload 4 /* context */
            aload 2 /* level */
            aload 3 /* length */
            iconst_0
         5: .line 1732
            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 1730
            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 1737
            aload 2 /* state */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 3
         1: .line 1738
            aload 0 /* this */
            aload 2 /* state */
            putfield org.jruby.RubyThread.reportOnException:Lorg/jruby/runtime/builtin/IRubyObject;
         2: .line 1739
            goto 6
         3: .line 1740
      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 1742
      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 1747
            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 1752
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1754
            aload 2 /* state */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 4
         2: .line 1755
            aload 3 /* runtime */
            aload 2 /* state */
            invokevirtual org.jruby.Ruby.setReportOnException:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         3: .line 1756
            goto 5
         4: .line 1757
      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 1760
      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 1765
            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 1769
            aload 0 /* this */
            getfield org.jruby.RubyThread.threadImpl:Lorg/jruby/internal/runtime/ThreadLike;
            instanceof org.jruby.internal.runtime.NativeThread
            ifeq 2
         1: .line 1770
            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 1774
      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 1778
            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 1782
            aload 0 /* this */
            aload 1 /* exception */
            invokevirtual org.jruby.RubyThread.exceptionRaised:(Ljava/lang/Throwable;)V
         1: .line 1783
            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 1786
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 1787
            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 1788
            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 1789
            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 1797
            aload 1 /* throwable */
            instanceof org.jruby.exceptions.Unrescuable
            ifeq 2
         1: .line 1798
            aload 1 /* throwable */
            invokestatic org.jruby.runtime.Helpers.throwException:(Ljava/lang/Throwable;)V
         2: .line 1801
      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 1803
            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 1807
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* throwable */
            instanceof org.jruby.exceptions.RaiseException
            ifeq 8
         5: .line 1808
            aload 1 /* throwable */
            checkcast org.jruby.exceptions.RaiseException
            astore 4 /* exception */
        start local 4 // org.jruby.exceptions.RaiseException exception
         6: .line 1809
            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 1810
            goto 9
        end local 3 // org.jruby.runtime.builtin.IRubyObject rubyException
         8: .line 1811
      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 1815
      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 1816
            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 1817
            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 1818
      StackMap locals: int
      StackMap stack:
            iload 4 /* report */
            ifeq 17
        15: .line 1819
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.printReportExceptionWarning:()V
        16: .line 1820
            aload 2 /* runtime */
            aload 1 /* throwable */
            invokevirtual org.jruby.Ruby.printError:(Ljava/lang/Throwable;)V
        17: .line 1822
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* runtime */
            invokevirtual org.jruby.RubyThread.abortOnException:(Lorg/jruby/Ruby;)Z
            ifeq 22
        18: .line 1823
            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 1825
            goto 22
      StackMap locals:
      StackMap stack:
        20: aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.isDebug:()Z
            ifeq 22
        21: .line 1826
            aload 2 /* runtime */
            aload 1 /* throwable */
            invokevirtual org.jruby.Ruby.printError:(Ljava/lang/Throwable;)V
        end local 4 // boolean report
        22: .line 1829
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* throwable */
            putfield org.jruby.RubyThread.exitingException:Ljava/lang/Throwable;
        23: .line 1830
            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 1833
            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 1837
            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 1850
            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 1866
            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 1881
            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 1896
            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 1914
            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 1933
            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 1934
            aload 1 /* channel */
            instanceof java.nio.channels.SelectableChannel
            ifeq 88
            aload 6 /* fd */
            ifnull 88
         4: .line 1935
            aload 1 /* channel */
            checkcast java.nio.channels.SelectableChannel
            astore 7 /* selectable */
        start local 7 // java.nio.channels.SelectableChannel selectable
         5: .line 1938
            iconst_0
            istore 8 /* locked */
        start local 8 // boolean locked
         6: .line 1939
            aload 2 /* fptr */
            ifnull 9
         7: .line 1940
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 8 /* locked */
         8: .line 1941
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 1944
      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 1945
            aload 7 /* selectable */
            invokevirtual java.nio.channels.SelectableChannel.isBlocking:()Z
            istore 10 /* oldBlocking */
        start local 10 // boolean oldBlocking
        11: .line 1949
            aload 7 /* selectable */
            iconst_0
            invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        12: .line 1951
            aload 2 /* fptr */
            ifnull 13
            aload 2 /* fptr */
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.addBlockingThread:(Lorg/jruby/RubyThread;)V
        13: .line 1952
      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 1954
            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 1956
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.beforeBlockingCall:()V
        16: .line 1959
            lload 4 /* timeout */
            lconst_0
            lcmp
            ifge 19
        17: .line 1960
            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 1961
            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 1962
            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 1963
            goto 23
        end local 12 // int result
        22: .line 1964
      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 1968
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
        24: .line 1970
            iload 12 /* result */
            iconst_1
            if_icmpne 45
        25: .line 1971
            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 1973
            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 1990
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            ifnull 35
        28: .line 1991
            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 1993
            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 1996
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            goto 36
        32: .line 1995
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 15
        33: .line 1996
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
        34: .line 1997
            aload 15
            athrow
        35: .line 1996
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
        36: .line 2000
      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 2004
      StackMap locals:
      StackMap stack:
            aload 7 /* selectable */
            iload 10 /* oldBlocking */
            invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        38: .line 2005
            goto 40
      StackMap locals:
      StackMap stack: java.lang.Exception
        39: pop
        40: .line 2010
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.afterBlockingCall:()V
            aload 9
            monitorexit
        41: .line 2014
            aload 2 /* fptr */
            ifnull 44
        42: .line 2015
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
        43: .line 2016
            iload 8 /* locked */
            ifeq 44
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        44: .line 1974
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 13 // java.util.Set keySet
        45: .line 1990
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            ifnull 53
        46: .line 1991
            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 1993
            goto 53
      StackMap locals:
      StackMap stack: java.lang.Exception
        48: pop
        49: .line 1996
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            goto 54
        50: .line 1995
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 15
        51: .line 1996
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
        52: .line 1997
            aload 15
            athrow
        53: .line 1996
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
        54: .line 2000
      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 2004
      StackMap locals:
      StackMap stack:
            aload 7 /* selectable */
            iload 10 /* oldBlocking */
            invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        56: .line 2005
            goto 58
      StackMap locals:
      StackMap stack: java.lang.Exception
        57: pop
        58: .line 2010
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.afterBlockingCall:()V
            aload 9
            monitorexit
        59: .line 2014
            aload 2 /* fptr */
            ifnull 62
        60: .line 2015
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
        61: .line 2016
            iload 8 /* locked */
            ifeq 62
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        62: .line 1978
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 12 // int result
        end local 11 // java.nio.channels.SelectionKey key
        63: .line 1979
      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 1980
            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 1981
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
        66: .line 1990
            aload 0 /* this */
            getfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            ifnull 74
        67: .line 1991
            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 1993
            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 1996
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
            goto 75
        71: .line 1995
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 15
        72: .line 1996
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
        73: .line 1997
            aload 15
            athrow
        74: .line 1996
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.currentSelector:Ljava/nio/channels/Selector;
        75: .line 2000
      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 2004
      StackMap locals:
      StackMap stack:
            aload 7 /* selectable */
            iload 10 /* oldBlocking */
            invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        77: .line 2005
            goto 79
      StackMap locals:
      StackMap stack: java.lang.Exception
        78: pop
        79: .line 2010
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.afterBlockingCall:()V
        80: .line 2011
            aload 14
            athrow
        end local 10 // boolean oldBlocking
        81: .line 1944
      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 2013
      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 2014
            aload 2 /* fptr */
            ifnull 87
        85: .line 2015
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
        86: .line 2016
            iload 8 /* locked */
            ifeq 87
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        87: .line 2018
      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 2021
      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 2027
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.setInterrupt:()V
         1: .line 2029
            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 2030
            aload 1 /* activeSelector */
            ifnull 4
         3: .line 2031
            aload 1 /* activeSelector */
            invokevirtual java.nio.channels.Selector.wakeup:()Ljava/nio/channels/Selector;
            pop
         4: .line 2033
      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 2034
            aload 2 /* iowait */
            ifnull 7
         6: .line 2035
            aload 2 /* iowait */
            invokevirtual org.jruby.util.io.BlockingIO$Condition.cancel:()V
         7: .line 2038
      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 2039
            aload 3 /* task */
            ifnull 10
         9: .line 2040
            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 2045
      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 2046
            aload 4 /* t */
            ifnull 13
        12: .line 2047
            aload 4 /* t */
            invokeinterface org.jruby.RubyThread$BlockingTask.wakeup:()V
        end local 4 // org.jruby.RubyThread$BlockingTask t
        13: .line 2052
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.notify:()V
        14: .line 2053
            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 2057
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyThread.interruptFlag:I
            istore 1 /* oldFlag */
        start local 1 // int oldFlag
         1: .line 2058
            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 2059
            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 2066
            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 2068
            aload 4 /* channel */
            instanceof java.nio.channels.SelectableChannel
            ifne 3
         2: .line 2069
            iconst_1
            ireturn
         3: .line 2072
      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 2073
            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 2074
            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 2077
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:(Lorg/jruby/runtime/ThreadContext;)V
         7: .line 2078
            iload 5 /* ready */
            istore 7
         8: .line 2085
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
         9: .line 2086
            aload 2 /* io */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.removeBlockingThread:(Lorg/jruby/RubyThread;)V
        10: .line 2078
            iload 7
            ireturn
        end local 5 // boolean ready
        11: .line 2079
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 5 /* ioe */
        start local 5 // java.io.IOException ioe
        12: .line 2080
            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 2081
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
        14: .line 2083
            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 2084
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        16: .line 2085
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyThread.blockingIO:Lorg/jruby/util/io/BlockingIO$Condition;
        17: .line 2086
            aload 2 /* io */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.removeBlockingThread:(Lorg/jruby/RubyThread;)V
        18: .line 2087
            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 2090
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
         1: .line 2091
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.enterSleep:()V
         2: .line 2092
            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 2095
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.exitSleep:()V
         1: .line 2096
            aload 0 /* this */
            invokevirtual org.jruby.RubyThread.pollThreadEvents:()V
         2: .line 2097
            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 2100
            aload 2 /* timeout */
            ifnull 10
         1: .line 2101
            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 2102
            invokestatic java.lang.System.nanoTime:()J
            lstore 5 /* start_ns */
        start local 5 // long start_ns
         3: .line 2103
            lload 3 /* delay_ns */
            lconst_0
            lcmp
            ifle 7
         4: .line 2104
            lload 3 /* delay_ns */
            ldc 1000000
            ldiv
            lstore 7 /* delay_ms */
        start local 7 // long delay_ms
         5: .line 2105
            lload 3 /* delay_ns */
            ldc 1000000
            lrem
            l2i
            istore 9 /* delay_ns_remainder */
        start local 9 // int delay_ns_remainder
         6: .line 2106
            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 2108
      StackMap locals: long long
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 7 /* end_ns */
        start local 7 // long end_ns
         8: .line 2109
            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 2111
      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 2112
            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 2117
            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 2122
            aload 1 /* obj */
            ifnonnull 2
         1: .line 2123
            iconst_0
            ireturn
         2: .line 2125
      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 2126
            iconst_0
            ireturn
         4: .line 2128
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast org.jruby.RubyThread
            astore 2 /* other */
        start local 2 // org.jruby.RubyThread other
         5: .line 2129
            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 2130
      StackMap locals: org.jruby.RubyThread
      StackMap stack:
            iconst_0
            ireturn
         7: .line 2132
      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 2137
            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 2142
            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 2152
            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 2153
      StackMap locals:
      StackMap stack:
            aload 1 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 2154
            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 2155
            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=6, locals=2, args_size=2
        start local 0 // org.jruby.RubyThread this
        start local 1 // java.util.concurrent.locks.Lock lock
         0: .line 2165
            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 2166
      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 */
            invokespecial org.jruby.RubyThread$2.<init>:(Lorg/jruby/RubyThread;)V
            invokevirtual org.jruby.RubyThread.executeTask:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/RubyThread$Task;)Ljava/lang/Object;
            pop
         2: .line 2178
            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 2179
            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;
    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 2189
            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 2190
      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 2191
            iload 2 /* locked */
            ifeq 4
         3: .line 2192
            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 2194
      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 2204
            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 2205
      StackMap locals:
      StackMap stack:
            aload 1 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         2: .line 2206
            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 2207
            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=2, locals=3, args_size=1
        start local 0 // org.jruby.RubyThread this
         0: .line 2213
            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 2214
      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 4
      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
        end local 1 // java.util.concurrent.locks.Lock lock
         4: .line 2214
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 2217
            return
        end local 0 // org.jruby.RubyThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/jruby/RubyThread;
            3    4     1  lock  Ljava/util/concurrent/locks/Lock;

  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 2223
            aload 0 /* this */
            aload 1 /* lock */
            lconst_0
            invokevirtual org.jruby.RubyThread.sleep:(Ljava/util/concurrent/locks/Lock;J)V
         1: .line 2224
            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 2230
            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 2231
      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 2247
            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 2250
            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 2258
            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 2259
            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 2263
            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 2264
            aload 2 /* mutex */
            ifnull 2
            aload 2 /* mutex */
            areturn
         2: .line 2265
      StackMap locals: org.jruby.ext.thread.Mutex
      StackMap stack:
            aload 1 /* recv */
            dup
            astore 3
            monitorenter
         3: .line 2266
            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 2267
            aload 2 /* mutex */
            ifnonnull 7
         5: .line 2268
            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 2269
            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 2271
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 2 /* mutex */
            aload 3
            monitorexit
         8: areturn
         9: .line 2265
      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 2283
            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 2284
            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 2285
            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 2289
            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 2293
            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 2300
            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 2305
            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 2310
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 2
                    0: 1
                    1: 2
                    2: 3
              default: 4
          }
         1: .line 2312
      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 2314
      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 2316
      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 2318
      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 2319
            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 2325
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 2
                    0: 1
                    1: 2
                    2: 3
              default: 4
          }
         1: .line 2327
      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 2329
      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 2331
      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 2333
      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 2334
            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 2340
            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 2342
            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 1703
            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 1732
            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 1703
            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 1732
            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"})