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 835
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 839
lload 1 /* idleTimeout */
lconst_0
lcmp
ifgt 2
1: .line 840
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 841
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=6, locals=10, args_size=1
start local 0 // org.eclipse.jetty.util.thread.QueuedThreadPool$Runner this
0: .line 847
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
invokeinterface org.eclipse.jetty.util.log.Logger.isDebugEnabled:()Z
ifeq 2
1: .line 848
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "Runner started for {}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
2: .line 850
StackMap locals:
StackMap stack:
aconst_null
astore 1 /* job */
start local 1 // java.lang.Runnable job
3: .line 855
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 13
4: .line 929
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 9 /* thread */
start local 9 // java.lang.Thread thread
5: .line 930
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
aload 9 /* thread */
invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.removeThread:(Ljava/lang/Thread;)V
6: .line 933
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
iconst_m1
aload 1 /* job */
ifnonnull 7
iconst_m1
goto 8
StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner java.lang.Runnable top top top top top top top java.lang.Thread
StackMap stack: org.eclipse.jetty.util.thread.QueuedThreadPool int
7: iconst_0
StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner java.lang.Runnable top top top top top top top java.lang.Thread
StackMap stack: org.eclipse.jetty.util.thread.QueuedThreadPool int int
8: invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.addCounts:(II)Z
pop
9: .line 934
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
invokeinterface org.eclipse.jetty.util.log.Logger.isDebugEnabled:()Z
ifeq 11
10: .line 935
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "{} exited for {}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 9 /* thread */
aastore
dup
iconst_1
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
11: .line 939
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 9 // java.lang.Thread thread
12: .line 856
return
13: .line 861
StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner java.lang.Runnable
StackMap stack:
aload 1 /* job */
ifnull 16
14: .line 863
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 18
15: .line 864
goto 56
16: .line 867
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 18
17: .line 869
goto 56
18: .line 875
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 1 /* job */
19: .line 876
aload 1 /* job */
ifnonnull 31
20: .line 879
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 2 /* idleTimeout */
start local 2 // long idleTimeout
21: .line 880
aload 0 /* this */
lload 2 /* idleTimeout */
invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll:(J)Ljava/lang/Runnable;
astore 1 /* job */
22: .line 883
aload 1 /* job */
ifnonnull 31
23: .line 886
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 13
lload 2 /* idleTimeout */
lconst_0
lcmp
ifle 13
24: .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 4 /* last */
start local 4 // long last
25: .line 889
invokestatic java.lang.System.nanoTime:()J
lstore 6 /* now */
start local 6 // long now
26: .line 890
lload 4 /* last */
lconst_0
lcmp
ifeq 27
lload 6 /* now */
lload 4 /* last */
lsub
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
lload 2 /* idleTimeout */
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lcmp
ifle 13
27: .line 892
StackMap locals: long long long
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._lastShrink:Ljava/util/concurrent/atomic/AtomicLong;
lload 4 /* last */
lload 6 /* now */
invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
ifeq 13
28: .line 894
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
invokeinterface org.eclipse.jetty.util.log.Logger.isDebugEnabled:()Z
ifeq 56
29: .line 895
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "shrinking {}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
30: .line 896
goto 56
end local 6 // long now
end local 4 // long last
end local 2 // long idleTimeout
31: .line 906
StackMap locals:
StackMap stack:
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
invokeinterface org.eclipse.jetty.util.log.Logger.isDebugEnabled:()Z
ifeq 33
32: .line 907
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "run {} in {}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1 /* job */
aastore
dup
iconst_1
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
33: .line 908
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
aload 1 /* job */
invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.runJob:(Ljava/lang/Runnable;)V
34: .line 909
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
invokeinterface org.eclipse.jetty.util.log.Logger.isDebugEnabled:()Z
ifeq 36
35: .line 910
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "ran {} in {}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1 /* job */
aastore
dup
iconst_1
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
36: .line 913
StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.interrupted:()Z
pop
37: .line 914
goto 13
38: .line 915
StackMap locals:
StackMap stack: java.lang.InterruptedException
astore 2 /* e */
start local 2 // java.lang.InterruptedException e
39: .line 917
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
invokeinterface org.eclipse.jetty.util.log.Logger.isDebugEnabled:()Z
ifeq 41
40: .line 918
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "interrupted {} in {}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1 /* job */
aastore
dup
iconst_1
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
41: .line 919
StackMap locals: java.lang.InterruptedException
StackMap stack:
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
aload 2 /* e */
invokeinterface org.eclipse.jetty.util.log.Logger.ignore:(Ljava/lang/Throwable;)V
end local 2 // java.lang.InterruptedException e
42: goto 13
43: .line 921
StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner java.lang.Runnable
StackMap stack: java.lang.Throwable
astore 2 /* e */
start local 2 // java.lang.Throwable e
44: .line 923
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
aload 2 /* e */
invokeinterface org.eclipse.jetty.util.log.Logger.warn:(Ljava/lang/Throwable;)V
end local 2 // java.lang.Throwable e
45: .line 858
goto 13
46: .line 928
StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
47: .line 929
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 9 /* thread */
start local 9 // java.lang.Thread thread
48: .line 930
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
aload 9 /* thread */
invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.removeThread:(Ljava/lang/Thread;)V
49: .line 933
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
iconst_m1
aload 1 /* job */
ifnonnull 50
iconst_m1
goto 51
StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner java.lang.Runnable top top top top top top java.lang.Throwable java.lang.Thread
StackMap stack: org.eclipse.jetty.util.thread.QueuedThreadPool int
50: iconst_0
StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner java.lang.Runnable top top top top top top java.lang.Throwable java.lang.Thread
StackMap stack: org.eclipse.jetty.util.thread.QueuedThreadPool int int
51: invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.addCounts:(II)Z
pop
52: .line 934
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
invokeinterface org.eclipse.jetty.util.log.Logger.isDebugEnabled:()Z
ifeq 54
53: .line 935
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "{} exited for {}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 9 /* thread */
aastore
dup
iconst_1
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
54: .line 939
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 9 // java.lang.Thread thread
55: .line 940
aload 8
athrow
56: .line 929
StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner java.lang.Runnable
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 9 /* thread */
start local 9 // java.lang.Thread thread
57: .line 930
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
aload 9 /* thread */
invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.removeThread:(Ljava/lang/Thread;)V
58: .line 933
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
iconst_m1
aload 1 /* job */
ifnonnull 59
iconst_m1
goto 60
StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner java.lang.Runnable top top top top top top top java.lang.Thread
StackMap stack: org.eclipse.jetty.util.thread.QueuedThreadPool int
59: iconst_0
StackMap locals: org.eclipse.jetty.util.thread.QueuedThreadPool$Runner java.lang.Runnable top top top top top top top java.lang.Thread
StackMap stack: org.eclipse.jetty.util.thread.QueuedThreadPool int int
60: invokevirtual org.eclipse.jetty.util.thread.QueuedThreadPool.addCounts:(II)Z
pop
61: .line 934
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
invokeinterface org.eclipse.jetty.util.log.Logger.isDebugEnabled:()Z
ifeq 63
62: .line 935
getstatic org.eclipse.jetty.util.thread.QueuedThreadPool.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "{} exited for {}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 9 /* thread */
aastore
dup
iconst_1
aload 0 /* this */
getfield org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.this$0:Lorg/eclipse/jetty/util/thread/QueuedThreadPool;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
63: .line 939
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 9 // java.lang.Thread thread
64: .line 941
return
end local 1 // java.lang.Runnable job
end local 0 // org.eclipse.jetty.util.thread.QueuedThreadPool$Runner this
LocalVariableTable:
Start End Slot Name Signature
0 65 0 this Lorg/eclipse/jetty/util/thread/QueuedThreadPool$Runner;
3 65 1 job Ljava/lang/Runnable;
21 31 2 idleTimeout J
25 31 4 last J
26 31 6 now J
39 42 2 e Ljava/lang/InterruptedException;
44 45 2 e Ljava/lang/Throwable;
5 12 9 thread Ljava/lang/Thread;
48 55 9 thread Ljava/lang/Thread;
57 64 9 thread Ljava/lang/Thread;
Exception table:
from to target type
18 30 38 Class java.lang.InterruptedException
31 37 38 Class java.lang.InterruptedException
18 30 43 Class java.lang.Throwable
31 37 43 Class java.lang.Throwable
3 4 46 any
13 46 46 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