public class org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker extends org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker
super_class: org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker
{
private final boolean core;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final org.glassfish.grizzly.threadpool.SyncThreadPool this$0;
descriptor: Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(org.glassfish.grizzly.threadpool.SyncThreadPool, boolean);
descriptor: (Lorg/glassfish/grizzly/threadpool/SyncThreadPool;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 // org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker this
start local 2 // boolean core
0: .line 144
aload 0 /* this */
aload 1
putfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
aload 0 /* this */
aload 1
invokespecial org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.<init>:(Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;)V
1: .line 145
aload 0 /* this */
iload 2 /* core */
putfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.core:Z
2: .line 146
return
end local 2 // boolean core
end local 0 // org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/glassfish/grizzly/threadpool/SyncThreadPool$SyncThreadWorker;
0 3 2 core Z
MethodParameters:
Name Flags
this$0 final
core
protected java.lang.Runnable getTask();
descriptor: ()Ljava/lang/Runnable;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=10, args_size=1
start local 0 // org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker this
0: .line 150
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: .line 151
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
dup
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
iconst_1
isub
putfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
2: .line 154
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.running:Z
ifeq 4
3: .line 155
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.core:Z
ifne 6
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.currentPoolSize:I
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.config:Lorg/glassfish/grizzly/threadpool/ThreadPoolConfig;
invokevirtual org.glassfish.grizzly.threadpool.ThreadPoolConfig.getMaxPoolSize:()I
if_icmple 6
4: .line 200
StackMap locals: java.lang.Object
StackMap stack:
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
dup
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
iconst_1
iadd
putfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
aload 1
monitorexit
5: .line 157
aconst_null
areturn
6: .line 160
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.workQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast java.lang.Runnable
astore 2 /* r */
start local 2 // java.lang.Runnable r
7: .line 162
aload 2 /* r */
ifnull 12
8: .line 163
aload 2 /* r */
astore 9
9: .line 200
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
dup
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
iconst_1
iadd
putfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
10: .line 163
aload 1
monitorexit
11: aload 9
areturn
12: .line 166
StackMap locals: java.lang.Runnable
StackMap stack:
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.config:Lorg/glassfish/grizzly/threadpool/ThreadPoolConfig;
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual org.glassfish.grizzly.threadpool.ThreadPoolConfig.getKeepAliveTime:(Ljava/util/concurrent/TimeUnit;)J
lstore 3 /* keepAliveMillis */
start local 3 // long keepAliveMillis
13: .line 167
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.core:Z
ifne 14
lload 3 /* keepAliveMillis */
lconst_0
lcmp
iflt 14
iconst_1
goto 15
StackMap locals: long
StackMap stack:
14: iconst_0
StackMap locals:
StackMap stack: int
15: istore 5 /* hasKeepAlive */
start local 5 // boolean hasKeepAlive
16: .line 169
ldc -1
lstore 6 /* endTime */
start local 6 // long endTime
17: .line 170
iload 5 /* hasKeepAlive */
ifeq 19
18: .line 171
invokestatic java.lang.System.currentTimeMillis:()J
lload 3 /* keepAliveMillis */
ladd
lstore 6 /* endTime */
19: .line 175
StackMap locals: int long
StackMap stack:
iload 5 /* hasKeepAlive */
ifne 22
20: .line 176
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.stateLock:Ljava/lang/Object;
invokevirtual java.lang.Object.wait:()V
21: .line 177
goto 23
22: .line 178
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.stateLock:Ljava/lang/Object;
lload 3 /* keepAliveMillis */
invokevirtual java.lang.Object.wait:(J)V
23: .line 181
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.workQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast java.lang.Runnable
astore 2 /* r */
24: .line 183
aload 2 /* r */
ifnull 29
25: .line 184
aload 2 /* r */
astore 9
26: .line 200
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
dup
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
iconst_1
iadd
putfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
27: .line 184
aload 1
monitorexit
28: aload 9
areturn
29: .line 188
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.running:Z
ifne 32
30: .line 200
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
dup
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
iconst_1
iadd
putfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
aload 1
monitorexit
31: .line 189
aconst_null
areturn
32: .line 190
StackMap locals:
StackMap stack:
iload 5 /* hasKeepAlive */
ifeq 19
33: .line 191
lload 6 /* endTime */
invokestatic java.lang.System.currentTimeMillis:()J
lsub
lstore 3 /* keepAliveMillis */
34: .line 193
lload 3 /* keepAliveMillis */
ldc 20
lcmp
ifge 19
35: .line 200
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
dup
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
iconst_1
iadd
putfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
aload 1
monitorexit
36: .line 194
aconst_null
areturn
end local 6 // long endTime
end local 5 // boolean hasKeepAlive
end local 3 // long keepAliveMillis
end local 2 // java.lang.Runnable r
37: .line 199
StackMap locals: org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker java.lang.Object
StackMap stack: java.lang.Throwable
astore 8
38: .line 200
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.this$0:Lorg/glassfish/grizzly/threadpool/SyncThreadPool;
dup
getfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
iconst_1
iadd
putfield org.glassfish.grizzly.threadpool.SyncThreadPool.activeThreadsCount:I
39: .line 201
aload 8
athrow
40: .line 150
StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
41: athrow
end local 0 // org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker this
LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lorg/glassfish/grizzly/threadpool/SyncThreadPool$SyncThreadWorker;
7 37 2 r Ljava/lang/Runnable;
13 37 3 keepAliveMillis J
16 37 5 hasKeepAlive Z
17 37 6 endTime J
Exception table:
from to target type
2 4 37 any
6 9 37 any
12 26 37 any
29 30 37 any
32 35 37 any
1 5 40 any
6 11 40 any
12 28 40 any
29 31 40 any
32 36 40 any
37 41 40 any
Exceptions:
throws java.lang.InterruptedException
}
SourceFile: "SyncThreadPool.java"
NestHost: org.glassfish.grizzly.threadpool.SyncThreadPool
InnerClasses:
public abstract Worker = org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker of org.glassfish.grizzly.threadpool.AbstractThreadPool
protected SyncThreadWorker = org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker of org.glassfish.grizzly.threadpool.SyncThreadPool