class org.eclipse.jetty.util.thread.QueuedThreadPool$Runner implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner
  super_class: java.lang.Object
{
  final org.eclipse.jetty.util.thread.QueuedThreadPool this$0;
    descriptor: Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(org.eclipse.jetty.util.thread.QueuedThreadPool);
    descriptor: (Lorg/eclipse/jetty/util/thread/QueuedThreadPool;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jetty.util.thread.QueuedThreadPool$Runner this
         0: .line 843
            aload 0 /* this */
            aload 1
            putfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.eclipse.jetty.util.thread.QueuedThreadPool$Runner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jetty/util/thread/QueuedThreadPool$Runner;
    MethodParameters:
        Name  Flags
      this$0  final

  private java.lang.Runnable idleJobPoll(long);
    descriptor: (J)Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.eclipse.jetty.util.thread.QueuedThreadPool$Runner this
        start local 1 // long idleTimeout
         0: .line 847
            lload 1 /* idleTimeout */
            lconst_0
            lcmp
            ifgt 2
         1: .line 848
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool._jobs:Ljava/util/concurrent/BlockingQueue;
            invokeinterface java.util.concurrent.BlockingQueue.take:()Ljava/lang/Object;
            checkcast java.lang.Runnable
            areturn
         2: .line 849
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool._jobs:Ljava/util/concurrent/BlockingQueue;
            lload 1 /* idleTimeout */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.BlockingQueue.poll:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
            checkcast java.lang.Runnable
            areturn
        end local 1 // long idleTimeout
        end local 0 // org.eclipse.jetty.util.thread.QueuedThreadPool$Runner this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/eclipse/jetty/util/thread/QueuedThreadPool$Runner;
            0    3     1  idleTimeout  J
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
             Name  Flags
      idleTimeout  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=1
        start local 0 // org.eclipse.jetty.util.thread.QueuedThreadPool$Runner this
         0: .line 855
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 2
         1: .line 856
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            ldc "Runner started for {}"
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 858
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 1 /* idle */
        start local 1 // boolean idle
         3: .line 861
            aconst_null
            astore 2 /* job */
        start local 2 // java.lang.Runnable job
         4: .line 865
      StackMap locals: int java.lang.Runnable
      StackMap stack:
            aload 2 /* job */
            ifnull 8
         5: .line 867
            iconst_1
            istore 1 /* idle */
         6: .line 869
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            iconst_0
            iconst_1
            invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.addCounts:(II)Z
            ifne 10
         7: .line 870
            goto 55
         8: .line 873
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool._counts:Lorg/eclipse/jetty/util/AtomicBiInteger;
            invokevirtual org.eclipse.jetty.util.AtomicBiInteger.getHi:()I
            ldc -2147483648
            if_icmpne 10
         9: .line 875
            goto 55
        10: .line 881
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool._jobs:Ljava/util/concurrent/BlockingQueue;
            invokeinterface java.util.concurrent.BlockingQueue.poll:()Ljava/lang/Object;
            checkcast java.lang.Runnable
            astore 2 /* job */
        11: .line 882
            aload 2 /* job */
            ifnonnull 25
        12: .line 885
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.getIdleTimeout:()I
            i2l
            lstore 3 /* idleTimeout */
        start local 3 // long idleTimeout
        13: .line 886
            lload 3 /* idleTimeout */
            lconst_0
            lcmp
            ifle 21
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.getThreads:()I
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool._minThreads:I
            if_icmple 21
        14: .line 888
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool._lastShrink:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            lstore 5 /* last */
        start local 5 // long last
        15: .line 889
            invokestatic java.lang.System.nanoTime:()J
            lstore 7 /* now */
        start local 7 // long now
        16: .line 890
            lload 7 /* now */
            lload 5 /* last */
            lsub
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            lload 3 /* idleTimeout */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lcmp
            ifle 21
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool._lastShrink:Ljava/util/concurrent/atomic/AtomicLong;
            lload 5 /* last */
            lload 7 /* now */
            invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
            ifeq 21
        17: .line 892
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 19
        18: .line 893
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            ldc "shrinking {}"
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        19: .line 929
      StackMap locals: long long long
      StackMap stack:
            invokestatic java.lang.Thread.interrupted:()Z
            pop
        20: .line 894
            goto 55
        end local 7 // long now
        end local 5 // long last
        21: .line 899
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 3 /* idleTimeout */
            invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll:(J)Ljava/lang/Runnable;
            astore 2 /* job */
        22: .line 902
            aload 2 /* job */
            ifnonnull 25
        23: .line 929
            invokestatic java.lang.Thread.interrupted:()Z
            pop
        24: .line 904
            goto 4
        end local 3 // long idleTimeout
        25: .line 907
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* idle */
        26: .line 910
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 28
        27: .line 911
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            ldc "run {} in {}"
            aload 2 /* job */
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        28: .line 912
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            aload 2 /* job */
            invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.runJob:(Ljava/lang/Runnable;)V
        29: .line 913
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 43
        30: .line 914
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            ldc "ran {} in {}"
            aload 2 /* job */
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        31: .line 915
            goto 43
        32: .line 916
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            astore 3 /* e */
        start local 3 // java.lang.InterruptedException e
        33: .line 918
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 35
        34: .line 919
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            ldc "interrupted {} in {}"
            aload 2 /* job */
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        35: .line 920
      StackMap locals: java.lang.InterruptedException
      StackMap stack:
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            ldc "IGNORED"
            aload 3 /* e */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.lang.InterruptedException e
        36: .line 929
            invokestatic java.lang.Thread.interrupted:()Z
            pop
            goto 4
        37: .line 922
      StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner int java.lang.Runnable
      StackMap stack: java.lang.Throwable
            astore 3 /* e */
        start local 3 // java.lang.Throwable e
        38: .line 924
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            ldc "Job failed"
            aload 3 /* e */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable e
        39: .line 929
            invokestatic java.lang.Thread.interrupted:()Z
            pop
            goto 4
        40: .line 927
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        41: .line 929
            invokestatic java.lang.Thread.interrupted:()Z
            pop
        42: .line 930
            aload 9
            athrow
        43: .line 929
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.interrupted:()Z
            pop
        44: .line 862
            goto 4
        end local 2 // java.lang.Runnable job
        45: .line 934
      StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner int
      StackMap stack: java.lang.Throwable
            astore 10
        46: .line 935
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 11 /* thread */
        start local 11 // java.lang.Thread thread
        47: .line 936
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            aload 11 /* thread */
            invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.removeThread:(Ljava/lang/Thread;)V
        48: .line 939
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            iconst_m1
            iload 1 /* idle */
            ifeq 49
            iconst_m1
            goto 50
      StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner int top top top top top top top top java.lang.Throwable java.lang.Thread
      StackMap stack: org.eclipse.jetty.util.thread.QueuedThreadPool int
        49: iconst_0
      StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner int top top top top top top top top java.lang.Throwable java.lang.Thread
      StackMap stack: org.eclipse.jetty.util.thread.QueuedThreadPool int int
        50: invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.addCounts:(II)Z
            pop
        51: .line 940
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 53
        52: .line 941
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            ldc "{} exited for {}"
            aload 11 /* thread */
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        53: .line 945
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.ensureThreads:()V
        end local 11 // java.lang.Thread thread
        54: .line 946
            aload 10
            athrow
        55: .line 935
      StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner int
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 11 /* thread */
        start local 11 // java.lang.Thread thread
        56: .line 936
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            aload 11 /* thread */
            invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.removeThread:(Ljava/lang/Thread;)V
        57: .line 939
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            iconst_m1
            iload 1 /* idle */
            ifeq 58
            iconst_m1
            goto 59
      StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner int top top top top top top top top top java.lang.Thread
      StackMap stack: org.eclipse.jetty.util.thread.QueuedThreadPool int
        58: iconst_0
      StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner int top top top top top top top top top java.lang.Thread
      StackMap stack: org.eclipse.jetty.util.thread.QueuedThreadPool int int
        59: invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.addCounts:(II)Z
            pop
        60: .line 940
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 62
        61: .line 941
            getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/slf4j/Logger;
            ldc "{} exited for {}"
            aload 11 /* thread */
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        62: .line 945
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
            invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.ensureThreads:()V
        end local 11 // java.lang.Thread thread
        63: .line 947
            return
        end local 1 // boolean idle
        end local 0 // org.eclipse.jetty.util.thread.QueuedThreadPool$Runner this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   64     0         this  Lorg/eclipse/jetty/util/thread/QueuedThreadPool$Runner;
            3   64     1         idle  Z
            4   45     2          job  Ljava/lang/Runnable;
           13   25     3  idleTimeout  J
           15   21     5         last  J
           16   21     7          now  J
           33   36     3            e  Ljava/lang/InterruptedException;
           38   39     3            e  Ljava/lang/Throwable;
           47   54    11       thread  Ljava/lang/Thread;
           56   63    11       thread  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
          10    19      32  Class java.lang.InterruptedException
          21    23      32  Class java.lang.InterruptedException
          25    31      32  Class java.lang.InterruptedException
          10    19      37  Class java.lang.Throwable
          21    23      37  Class java.lang.Throwable
          25    31      37  Class java.lang.Throwable
          10    19      40  any
          21    23      40  any
          25    36      40  any
          37    39      40  any
           3    45      45  any
}
SourceFile: "QueuedThreadPool.java"
NestHost: org.eclipse.jetty.util.thread.QueuedThreadPool
InnerClasses:
  private Runner = org.eclipse.jetty.util.thread.QueuedThreadPool$Runner of org.eclipse.jetty.util.thread.QueuedThreadPool