abstract class org.jruby.compiler.JITCompiler$Task implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: org.jruby.compiler.JITCompiler$Task
  super_class: java.lang.Object
{
  protected final org.jruby.compiler.JITCompiler jitCompiler;
    descriptor: Lorg/jruby/compiler/JITCompiler;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  public void <init>(org.jruby.compiler.JITCompiler);
    descriptor: (Lorg/jruby/compiler/JITCompiler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.compiler.JITCompiler$Task this
        start local 1 // org.jruby.compiler.JITCompiler jitCompiler
         0: .line 291
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 292
            aload 0 /* this */
            aload 1 /* jitCompiler */
            putfield org.jruby.compiler.JITCompiler$Task.jitCompiler:Lorg/jruby/compiler/JITCompiler;
         2: .line 293
            return
        end local 1 // org.jruby.compiler.JITCompiler jitCompiler
        end local 0 // org.jruby.compiler.JITCompiler$Task this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/jruby/compiler/JITCompiler$Task;
            0    3     1  jitCompiler  Lorg/jruby/compiler/JITCompiler;
    MethodParameters:
             Name  Flags
      jitCompiler  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.jruby.compiler.JITCompiler$Task this
         0: .line 299
            aload 0 /* this */
            getfield org.jruby.compiler.JITCompiler$Task.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            dup
            astore 1
            monitorenter
         1: .line 301
            aload 0 /* this */
            invokevirtual org.jruby.compiler.JITCompiler$Task.exec:()V
         2: .line 302
            goto 5
      StackMap locals: org.jruby.compiler.JITCompiler$Task org.jruby.compiler.JITCompiler
      StackMap stack: java.lang.Throwable
         3: astore 2 /* ex */
        start local 2 // java.lang.Throwable ex
         4: .line 303
            aload 0 /* this */
            aload 2 /* ex */
            invokevirtual org.jruby.compiler.JITCompiler$Task.jitFailed:(Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable ex
         5: .line 299
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 306
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.compiler.JITCompiler$Task this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/jruby/compiler/JITCompiler$Task;
            4    5     2    ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
           1     6       7  any
           7     8       7  any

  protected abstract void exec();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.lang.Exception

  protected java.lang.String getSourceFile();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.compiler.JITCompiler$Task this
         0: .line 311
            aconst_null
            areturn
        end local 0 // org.jruby.compiler.JITCompiler$Task this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/compiler/JITCompiler$Task;

  protected void jitFailed(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.compiler.JITCompiler$Task this
        start local 1 // java.lang.Throwable ex
         0: .line 317
            aload 0 /* this */
            getfield org.jruby.compiler.JITCompiler$Task.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            getfield org.jruby.compiler.JITCompiler.config:Lorg/jruby/RubyInstanceConfig;
            invokevirtual org.jruby.RubyInstanceConfig.isJitLogging:()Z
            ifeq 4
         1: .line 318
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual org.jruby.compiler.JITCompiler$Task.logFailed:(Ljava/lang/Throwable;)V
         2: .line 319
            aload 0 /* this */
            getfield org.jruby.compiler.JITCompiler$Task.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            getfield org.jruby.compiler.JITCompiler.config:Lorg/jruby/RubyInstanceConfig;
            invokevirtual org.jruby.RubyInstanceConfig.isJitLoggingVerbose:()Z
            ifeq 4
         3: .line 320
            aload 1 /* ex */
            invokevirtual java.lang.Throwable.printStackTrace:()V
         4: .line 324
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.compiler.JITCompiler$Task.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
            getfield org.jruby.compiler.JITCounts.failCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
         5: .line 325
            return
        end local 1 // java.lang.Throwable ex
        end local 0 // org.jruby.compiler.JITCompiler$Task this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/jruby/compiler/JITCompiler$Task;
            0    6     1    ex  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      ex    final

  protected java.lang.Class<?> defineClass(org.jruby.compiler.JITClassGenerator, org.jruby.ir.targets.JVMVisitor, org.jruby.ir.IRScope, org.jruby.ir.interpreter.InterpreterContext);
    descriptor: (Lorg/jruby/compiler/JITClassGenerator;Lorg/jruby/ir/targets/JVMVisitor;Lorg/jruby/ir/IRScope;Lorg/jruby/ir/interpreter/InterpreterContext;)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.jruby.compiler.JITCompiler$Task this
        start local 1 // org.jruby.compiler.JITClassGenerator generator
        start local 2 // org.jruby.ir.targets.JVMVisitor visitor
        start local 3 // org.jruby.ir.IRScope scope
        start local 4 // org.jruby.ir.interpreter.InterpreterContext interpreterContext
         0: .line 334
            aload 2 /* visitor */
            aload 3 /* scope */
            aload 1 /* generator */
            invokevirtual org.jruby.compiler.JITClassGenerator.bytecode:()[B
            aload 0 /* this */
            invokevirtual org.jruby.compiler.JITCompiler$Task.getCodeLoader:()Lorg/jruby/util/ClassDefiningClassLoader;
            invokevirtual org.jruby.ir.targets.JVMVisitor.defineFromBytecode:(Lorg/jruby/ir/IRScope;[BLorg/jruby/util/ClassDefiningClassLoader;)Ljava/lang/Class;
            astore 5 /* sourceClass */
        start local 5 // java.lang.Class sourceClass
         1: .line 336
            aload 5 /* sourceClass */
            ifnonnull 4
         2: .line 338
            aload 0 /* this */
            getfield org.jruby.compiler.JITCompiler$Task.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
            getfield org.jruby.compiler.JITCounts.failCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
         3: .line 339
            aconst_null
            areturn
         4: .line 341
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 1 /* generator */
            aload 0 /* this */
            getfield org.jruby.compiler.JITCompiler$Task.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
            aload 4 /* interpreterContext */
            invokevirtual org.jruby.compiler.JITClassGenerator.updateCounters:(Lorg/jruby/compiler/JITCounts;Lorg/jruby/ir/interpreter/InterpreterContext;)V
         5: .line 344
            aload 0 /* this */
            getfield org.jruby.compiler.JITCompiler$Task.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
            getfield org.jruby.compiler.JITCounts.successCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            lstore 6 /* methodCount */
        start local 6 // long methodCount
         6: .line 346
            aload 0 /* this */
            getfield org.jruby.compiler.JITCompiler$Task.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            getfield org.jruby.compiler.JITCompiler.config:Lorg/jruby/RubyInstanceConfig;
            invokevirtual org.jruby.RubyInstanceConfig.isJitLogging:()Z
            ifeq 7
            aload 0 /* this */
            invokevirtual org.jruby.compiler.JITCompiler$Task.logJitted:()V
         7: .line 349
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.compiler.JITCompiler$Task.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            getfield org.jruby.compiler.JITCompiler.config:Lorg/jruby/RubyInstanceConfig;
            invokevirtual org.jruby.RubyInstanceConfig.getJitLogEvery:()I
            ifle 10
         8: .line 350
            lload 6 /* methodCount */
            aload 0 /* this */
            getfield org.jruby.compiler.JITCompiler$Task.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            getfield org.jruby.compiler.JITCompiler.config:Lorg/jruby/RubyInstanceConfig;
            invokevirtual org.jruby.RubyInstanceConfig.getJitLogEvery:()I
            i2l
            lrem
            lconst_0
            lcmp
            ifne 10
         9: .line 351
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "live compiled count: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 6 /* methodCount */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.jruby.compiler.JITCompiler$Task.logImpl:(Ljava/lang/String;[Ljava/lang/Object;)V
        10: .line 355
      StackMap locals:
      StackMap stack:
            aload 5 /* sourceClass */
            areturn
        end local 6 // long methodCount
        end local 5 // java.lang.Class sourceClass
        end local 4 // org.jruby.ir.interpreter.InterpreterContext interpreterContext
        end local 3 // org.jruby.ir.IRScope scope
        end local 2 // org.jruby.ir.targets.JVMVisitor visitor
        end local 1 // org.jruby.compiler.JITClassGenerator generator
        end local 0 // org.jruby.compiler.JITCompiler$Task this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0                this  Lorg/jruby/compiler/JITCompiler$Task;
            0   11     1           generator  Lorg/jruby/compiler/JITClassGenerator;
            0   11     2             visitor  Lorg/jruby/ir/targets/JVMVisitor;
            0   11     3               scope  Lorg/jruby/ir/IRScope;
            0   11     4  interpreterContext  Lorg/jruby/ir/interpreter/InterpreterContext;
            1   11     5         sourceClass  Ljava/lang/Class;
            6   11     6         methodCount  J
    Signature: (Lorg/jruby/compiler/JITClassGenerator;Lorg/jruby/ir/targets/JVMVisitor;Lorg/jruby/ir/IRScope;Lorg/jruby/ir/interpreter/InterpreterContext;)Ljava/lang/Class<*>;
    MethodParameters:
                    Name  Flags
      generator           final
      visitor             final
      scope               final
      interpreterContext  final

  org.jruby.util.ClassDefiningClassLoader getCodeLoader();
    descriptor: ()Lorg/jruby/util/ClassDefiningClassLoader;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.compiler.JITCompiler$Task this
         0: .line 359
            aload 0 /* this */
            getfield org.jruby.compiler.JITCompiler$Task.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            aload 0 /* this */
            invokevirtual org.jruby.compiler.JITCompiler$Task.getSourceFile:()Ljava/lang/String;
            invokevirtual org.jruby.compiler.JITCompiler.getLoaderFor:(Ljava/lang/String;)Lorg/jruby/util/ClassDefiningClassLoader;
            areturn
        end local 0 // org.jruby.compiler.JITCompiler$Task this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/compiler/JITCompiler$Task;

  protected void logJitted();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.compiler.JITCompiler$Task this
         0: .line 363
            aload 0 /* this */
            ldc "done jitting"
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.jruby.compiler.JITCompiler$Task.logImpl:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 364
            return
        end local 0 // org.jruby.compiler.JITCompiler$Task this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/compiler/JITCompiler$Task;

  protected void logFailed(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.jruby.compiler.JITCompiler$Task this
        start local 1 // java.lang.Throwable ex
         0: .line 367
            aload 0 /* this */
            ldc "could not compile"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* ex */
            aastore
            invokevirtual org.jruby.compiler.JITCompiler$Task.logImpl:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 368
            return
        end local 1 // java.lang.Throwable ex
        end local 0 // org.jruby.compiler.JITCompiler$Task this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/compiler/JITCompiler$Task;
            0    2     1    ex  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      ex    

  protected abstract void logImpl(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0484) ACC_PROTECTED, ACC_VARARGS, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      msg    
      cause  
}
SourceFile: "JITCompiler.java"
NestHost: org.jruby.compiler.JITCompiler
InnerClasses:
  abstract Task = org.jruby.compiler.JITCompiler$Task of org.jruby.compiler.JITCompiler