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 139
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 140
aload 0 /* this */
iload 2 /* core */
putfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.core:Z
2: .line 141
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 145
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 146
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 149
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 3
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.core:Z
ifne 5
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 5
3: .line 194
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
4: .line 151
aconst_null
areturn
5: .line 154
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
6: .line 156
aload 2 /* r */
ifnull 11
7: .line 157
aload 2 /* r */
astore 9
8: .line 194
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
9: .line 157
aload 1
monitorexit
10: aload 9
areturn
11: .line 160
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
12: .line 161
aload 0 /* this */
getfield org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker.core:Z
ifne 13
lload 3 /* keepAliveMillis */
lconst_0
lcmp
iflt 13
iconst_1
goto 14
StackMap locals: long
StackMap stack:
13: iconst_0
StackMap locals:
StackMap stack: int
14: istore 5 /* hasKeepAlive */
start local 5 // boolean hasKeepAlive
15: .line 163
ldc -1
lstore 6 /* endTime */
start local 6 // long endTime
16: .line 164
iload 5 /* hasKeepAlive */
ifeq 18
17: .line 165
invokestatic java.lang.System.currentTimeMillis:()J
lload 3 /* keepAliveMillis */
ladd
lstore 6 /* endTime */
18: .line 169
StackMap locals: int long
StackMap stack:
iload 5 /* hasKeepAlive */
ifne 21
19: .line 170
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
20: .line 171
goto 22
21: .line 172
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
22: .line 175
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 */
23: .line 177
aload 2 /* r */
ifnull 28
24: .line 178
aload 2 /* r */
astore 9
25: .line 194
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
26: .line 178
aload 1
monitorexit
27: aload 9
areturn
28: .line 182
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 31
29: .line 194
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
30: .line 183
aconst_null
areturn
31: .line 184
StackMap locals:
StackMap stack:
iload 5 /* hasKeepAlive */
ifeq 18
32: .line 185
lload 6 /* endTime */
invokestatic java.lang.System.currentTimeMillis:()J
lsub
lstore 3 /* keepAliveMillis */
33: .line 187
lload 3 /* keepAliveMillis */
ldc 20
lcmp
ifge 18
34: .line 194
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
35: .line 188
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
36: .line 193
StackMap locals: org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker java.lang.Object
StackMap stack: java.lang.Throwable
astore 8
37: .line 194
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
38: .line 195
aload 8
athrow
39: .line 145
StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
40: athrow
end local 0 // org.glassfish.grizzly.threadpool.SyncThreadPool$SyncThreadWorker this
LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lorg/glassfish/grizzly/threadpool/SyncThreadPool$SyncThreadWorker;
6 36 2 r Ljava/lang/Runnable;
12 36 3 keepAliveMillis J
15 36 5 hasKeepAlive Z
16 36 6 endTime J
Exception table:
from to target type
2 3 36 any
5 8 36 any
11 25 36 any
28 29 36 any
31 34 36 any
1 4 39 any
5 10 39 any
11 27 39 any
28 30 39 any
31 35 39 any
36 40 39 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