public class java.util.concurrent.ForkJoinPool extends java.util.concurrent.AbstractExecutorService
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.util.concurrent.ForkJoinPool
super_class: java.util.concurrent.AbstractExecutorService
{
static final int SWIDTH;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 16
static final int SMASK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65535
static final int MAX_CAP;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 32767
static final int SQMASK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 126
static final int UNSIGNALLED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -2147483648
static final int SS_SEQ;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65536
static final int QLOCK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int OWNED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int FIFO;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65536
static final int SHUTDOWN;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 262144
static final int TERMINATED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 524288
static final int STOP;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -2147483648
static final int QUIET;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1073741824
static final int DORMANT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -1073741824
static final int INITIAL_QUEUE_CAPACITY;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 8192
static final int MAXIMUM_QUEUE_CAPACITY;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 67108864
static final int TOP_BOUND_SHIFT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 10
public static final java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory defaultForkJoinWorkerThreadFactory;
descriptor: Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
static final java.lang.RuntimePermission modifyThreadPermission;
descriptor: Ljava/lang/RuntimePermission;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.util.concurrent.ForkJoinPool common;
descriptor: Ljava/util/concurrent/ForkJoinPool;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int COMMON_PARALLELISM;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final int COMMON_MAX_SPARES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static int poolNumberSequence;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final long DEFAULT_KEEPALIVE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 60000
private static final long TIMEOUT_SLOP;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
private static final int DEFAULT_COMMON_MAX_SPARES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 256
private static final int SEED_INCREMENT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1640531527
private static final long SP_MASK;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4294967295
private static final long UC_MASK;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -4294967296
private static final int RC_SHIFT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 48
private static final long RC_UNIT;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 281474976710656
private static final long RC_MASK;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -281474976710656
private static final int TC_SHIFT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final long TC_UNIT;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4294967296
private static final long TC_MASK;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 281470681743360
private static final long ADD_WORKER;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 140737488355328
volatile long stealCount;
descriptor: J
flags: (0x0040) ACC_VOLATILE
final long keepAlive;
descriptor: J
flags: (0x0010) ACC_FINAL
int indexSeed;
descriptor: I
flags: (0x0000)
final int bounds;
descriptor: I
flags: (0x0010) ACC_FINAL
volatile int mode;
descriptor: I
flags: (0x0040) ACC_VOLATILE
java.util.concurrent.ForkJoinPool$WorkQueue[] workQueues;
descriptor: [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
flags: (0x0000)
final java.lang.String workerNamePrefix;
descriptor: Ljava/lang/String;
flags: (0x0010) ACC_FINAL
final java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory factory;
descriptor: Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
flags: (0x0010) ACC_FINAL
final java.lang.Thread$UncaughtExceptionHandler ueh;
descriptor: Ljava/lang/Thread$UncaughtExceptionHandler;
flags: (0x0010) ACC_FINAL
final java.util.function.Predicate<? super java.util.concurrent.ForkJoinPool> saturate;
descriptor: Ljava/util/function/Predicate;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/Predicate<-Ljava/util/concurrent/ForkJoinPool;>;
volatile long ctl;
descriptor: J
flags: (0x0040) ACC_VOLATILE
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.Contended(value = "fjpctl")
private static final java.lang.invoke.VarHandle CTL;
descriptor: Ljava/lang/invoke/VarHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.VarHandle MODE;
descriptor: Ljava/lang/invoke/VarHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final java.lang.invoke.VarHandle QA;
descriptor: Ljava/lang/invoke/VarHandle;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=0
0: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
astore 0
start local 0 1: aload 0
ldc Ljava/util/concurrent/ForkJoinPool;
ldc "ctl"
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
invokevirtual java.lang.invoke.MethodHandles$Lookup.findVarHandle:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
putstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
2: aload 0
ldc Ljava/util/concurrent/ForkJoinPool;
ldc "mode"
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
invokevirtual java.lang.invoke.MethodHandles$Lookup.findVarHandle:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
putstatic java.util.concurrent.ForkJoinPool.MODE:Ljava/lang/invoke/VarHandle;
3: ldc [Ljava/util/concurrent/ForkJoinTask;
invokestatic java.lang.invoke.MethodHandles.arrayElementVarHandle:(Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
putstatic java.util.concurrent.ForkJoinPool.QA:Ljava/lang/invoke/VarHandle;
end local 0 4: goto 7
StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
5: astore 0
start local 0 6: new java.lang.ExceptionInInitializerError
dup
aload 0
invokespecial java.lang.ExceptionInInitializerError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 7: StackMap locals:
StackMap stack:
sipush 256
istore 0
start local 0 8: ldc "java.util.concurrent.ForkJoinPool.common.maximumSpares"
9: invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 10: aload 1
ifnull 14
11: aload 1
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 0
end local 1 12: goto 14
StackMap locals: int
StackMap stack: java.lang.Exception
13: pop
14: StackMap locals:
StackMap stack:
iload 0
putstatic java.util.concurrent.ForkJoinPool.COMMON_MAX_SPARES:I
15: new java.util.concurrent.ForkJoinPool$DefaultForkJoinWorkerThreadFactory
dup
invokespecial java.util.concurrent.ForkJoinPool$DefaultForkJoinWorkerThreadFactory.<init>:()V
16: putstatic java.util.concurrent.ForkJoinPool.defaultForkJoinWorkerThreadFactory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
17: new java.lang.RuntimePermission
dup
ldc "modifyThread"
invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
putstatic java.util.concurrent.ForkJoinPool.modifyThreadPermission:Ljava/lang/RuntimePermission;
18: new java.util.concurrent.ForkJoinPool$1
dup
invokespecial java.util.concurrent.ForkJoinPool$1.<init>:()V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.util.concurrent.ForkJoinPool
putstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
19: getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
getfield java.util.concurrent.ForkJoinPool.mode:I
ldc 65535
iand
iconst_1
invokestatic java.lang.Math.max:(II)I
putstatic java.util.concurrent.ForkJoinPool.COMMON_PARALLELISM:I
end local 0 20: return
LocalVariableTable:
Start End Slot Name Signature
1 4 0 l Ljava/lang/invoke/MethodHandles$Lookup;
6 7 0 e Ljava/lang/ReflectiveOperationException;
8 20 0 commonMaxSpares I
10 12 1 p Ljava/lang/String;
Exception table:
from to target type
0 4 5 Class java.lang.ReflectiveOperationException
8 12 13 Class java.lang.Exception
private static void checkPermission();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 0
start local 0 1: aload 0
ifnull 3
2: aload 0
getstatic java.util.concurrent.ForkJoinPool.modifyThreadPermission:Ljava/lang/RuntimePermission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 security Ljava/lang/SecurityManager;
static java.security.AccessControlContext contextWithPermissions(java.security.Permission[]);
descriptor: ([Ljava/security/Permission;)Ljava/security/AccessControlContext;
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=9, locals=6, args_size=1
start local 0 0: new java.security.Permissions
dup
invokespecial java.security.Permissions.<init>:()V
astore 1
start local 1 1: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: java.security.Permission[] java.security.Permissions top int int java.security.Permission[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 1
aload 2
invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
end local 2 4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 2
6: new java.security.AccessControlContext
dup
7: iconst_1
anewarray java.security.ProtectionDomain
dup
iconst_0
new java.security.ProtectionDomain
dup
aconst_null
aload 1
invokespecial java.security.ProtectionDomain.<init>:(Ljava/security/CodeSource;Ljava/security/PermissionCollection;)V
aastore
8: invokespecial java.security.AccessControlContext.<init>:([Ljava/security/ProtectionDomain;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 perms [Ljava/security/Permission;
1 9 1 permissions Ljava/security/Permissions;
3 4 2 perm Ljava/security/Permission;
MethodParameters:
Name Flags
perms
private static final synchronized int nextPoolId();
descriptor: ()I
flags: (0x003a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNCHRONIZED
Code:
stack=2, locals=0, args_size=0
0: getstatic java.util.concurrent.ForkJoinPool.poolNumberSequence:I
iconst_1
iadd
dup
putstatic java.util.concurrent.ForkJoinPool.poolNumberSequence:I
ireturn
LocalVariableTable:
Start End Slot Name Signature
private boolean createWorker();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.factory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
astore 1
start local 1 1: aconst_null
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: aload 1
ifnull 8
aload 1
aload 0
invokeinterface java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory.newThread:(Ljava/util/concurrent/ForkJoinPool;)Ljava/util/concurrent/ForkJoinWorkerThread;
dup
astore 3
ifnull 8
4: aload 3
invokevirtual java.util.concurrent.ForkJoinWorkerThread.start:()V
5: iconst_1
ireturn
6: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Throwable java.util.concurrent.ForkJoinWorkerThread
StackMap stack: java.lang.Throwable
astore 4
start local 4 7: aload 4
astore 2
end local 4 8: StackMap locals:
StackMap stack:
aload 0
aload 3
aload 2
invokevirtual java.util.concurrent.ForkJoinPool.deregisterWorker:(Ljava/util/concurrent/ForkJoinWorkerThread;Ljava/lang/Throwable;)V
9: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/ForkJoinPool;
1 10 1 fac Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
2 10 2 ex Ljava/lang/Throwable;
3 10 3 wt Ljava/util/concurrent/ForkJoinWorkerThread;
7 8 4 rex Ljava/lang/Throwable;
Exception table:
from to target type
3 5 6 Class java.lang.Throwable
private void tryAddWorker(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
ldc -281474976710656
lload 1
ldc 281474976710656
ladd
land
1: ldc 281470681743360
lload 1
ldc 4294967296
ladd
land
2: lor
lstore 3
start local 3 3: aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lload 1
lcmp
ifne 6
getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 0
lload 1
lload 3
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Ljava/util/concurrent/ForkJoinPool;JJ)Z
ifeq 6
4: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.createWorker:()Z
pop
5: goto 7
end local 3 6: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 1
ldc 140737488355328
land
lconst_0
lcmp
ifeq 7
lload 1
l2i
ifeq 0
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/util/concurrent/ForkJoinPool;
0 8 1 c J
3 6 3 nc J
MethodParameters:
Name Flags
c
final java.util.concurrent.ForkJoinPool$WorkQueue registerWorker(java.util.concurrent.ForkJoinWorkerThread);
descriptor: (Ljava/util/concurrent/ForkJoinWorkerThread;)Ljava/util/concurrent/ForkJoinPool$WorkQueue;
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=17, args_size=2
start local 0 start local 1 0: aload 1
iconst_1
invokevirtual java.util.concurrent.ForkJoinWorkerThread.setDaemon:(Z)V
1: aload 0
getfield java.util.concurrent.ForkJoinPool.ueh:Ljava/lang/Thread$UncaughtExceptionHandler;
dup
astore 2
start local 2 2: ifnull 4
3: aload 1
aload 2
invokevirtual java.util.concurrent.ForkJoinWorkerThread.setUncaughtExceptionHandler:(Ljava/lang/Thread$UncaughtExceptionHandler;)V
4: StackMap locals: java.lang.Thread$UncaughtExceptionHandler
StackMap stack:
iconst_0
istore 3
start local 3 5: aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
ldc 65536
iand
istore 4
start local 4 6: aload 0
getfield java.util.concurrent.ForkJoinPool.workerNamePrefix:Ljava/lang/String;
astore 5
start local 5 7: new java.util.concurrent.ForkJoinPool$WorkQueue
dup
aload 0
aload 1
invokespecial java.util.concurrent.ForkJoinPool$WorkQueue.<init>:(Ljava/util/concurrent/ForkJoinPool;Ljava/util/concurrent/ForkJoinWorkerThread;)V
astore 6
start local 6 8: aload 5
ifnull 49
9: aload 5
dup
astore 7
monitorenter
10: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 8
start local 8 11: aload 0
dup
getfield java.util.concurrent.ForkJoinPool.indexSeed:I
ldc -1640531527
iadd
dup_x1
putfield java.util.concurrent.ForkJoinPool.indexSeed:I
istore 10
start local 10 12: iload 4
iload 10
ldc 1073610752
iand
ior
istore 4
13: aload 8
ifnull 44
aload 8
arraylength
dup
istore 9
start local 9 14: iconst_1
if_icmple 44
15: iload 9
iconst_1
isub
istore 11
start local 11 16: iload 11
iload 10
iconst_1
ishl
iconst_1
ior
iand
istore 3
17: iload 9
iconst_1
iushr
istore 12
start local 12 18: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.lang.Thread$UncaughtExceptionHandler int int java.lang.String java.util.concurrent.ForkJoinPool$WorkQueue java.lang.String java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int
StackMap stack:
aload 8
iload 3
aaload
dup
astore 13
start local 13 19: ifnull 26
aload 13
getfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
ldc 1073741824
if_icmpne 21
20: goto 26
21: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
iinc 12 -1
iload 12
ifne 24
22: iload 9
iconst_1
ior
istore 3
23: goto 26
24: StackMap locals:
StackMap stack:
iload 3
iconst_2
iadd
iload 11
iand
istore 3
end local 13 25: goto 18
end local 12 26: StackMap locals:
StackMap stack:
aload 6
aload 6
iload 3
iload 4
ior
dup_x1
putfield java.util.concurrent.ForkJoinPool$WorkQueue.id:I
putfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
27: iload 3
iload 9
if_icmpge 29
28: aload 8
iload 3
aload 6
aastore
goto 44
29: StackMap locals:
StackMap stack:
iload 9
iconst_1
ishl
istore 12
start local 12 30: iload 12
anewarray java.util.concurrent.ForkJoinPool$WorkQueue
astore 13
start local 13 31: aload 13
iload 3
aload 6
aastore
32: iload 12
iconst_1
isub
istore 14
start local 14 33: iconst_0
istore 15
start local 15 34: goto 42
35: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.lang.Thread$UncaughtExceptionHandler int int java.lang.String java.util.concurrent.ForkJoinPool$WorkQueue java.lang.String java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int java.util.concurrent.ForkJoinPool$WorkQueue[] int int
StackMap stack:
aload 8
iload 15
aaload
dup
astore 16
start local 16 36: ifnull 38
37: aload 13
aload 16
getfield java.util.concurrent.ForkJoinPool$WorkQueue.id:I
iload 14
iand
bipush 126
iand
aload 16
aastore
38: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
iinc 15 1
iload 15
iload 9
if_icmplt 40
39: goto 43
40: StackMap locals:
StackMap stack:
aload 13
iload 15
aload 8
iload 15
aaload
aastore
end local 16 41: iinc 15 1
StackMap locals:
StackMap stack:
42: iload 15
iload 9
if_icmplt 35
end local 15 43: StackMap locals:
StackMap stack:
aload 0
aload 13
putfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 44: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.lang.Thread$UncaughtExceptionHandler int int java.lang.String java.util.concurrent.ForkJoinPool$WorkQueue java.lang.String
StackMap stack:
aload 7
monitorexit
45: goto 48
StackMap locals:
StackMap stack: java.lang.Throwable
46: aload 7
monitorexit
47: athrow
48: StackMap locals:
StackMap stack:
aload 1
aload 5
iload 3
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.concurrent.ForkJoinWorkerThread.setName:(Ljava/lang/String;)V
49: StackMap locals:
StackMap stack:
aload 6
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Ljava/util/concurrent/ForkJoinPool;
0 50 1 wt Ljava/util/concurrent/ForkJoinWorkerThread;
2 50 2 handler Ljava/lang/Thread$UncaughtExceptionHandler;
5 50 3 tid I
6 50 4 idbits I
7 50 5 prefix Ljava/lang/String;
8 50 6 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
11 44 8 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
14 44 9 n I
12 44 10 s I
16 44 11 m I
18 26 12 probes I
19 25 13 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
30 44 12 an I
31 44 13 as [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
33 44 14 am I
34 43 15 j I
36 41 16 v Ljava/util/concurrent/ForkJoinPool$WorkQueue;
Exception table:
from to target type
10 45 46 any
46 47 46 any
MethodParameters:
Name Flags
wt
final void deregisterWorker(java.util.concurrent.ForkJoinWorkerThread, java.lang.Throwable);
descriptor: (Ljava/util/concurrent/ForkJoinWorkerThread;Ljava/lang/Throwable;)V
flags: (0x0010) ACC_FINAL
Code:
stack=12, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: aload 1
ifnull 20
aload 1
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
ifnull 20
3: aload 0
getfield java.util.concurrent.ForkJoinPool.workerNamePrefix:Ljava/lang/String;
astore 5
start local 5 4: aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.id:I
istore 6
start local 6 5: aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.nsteals:I
i2l
ldc 4294967295
land
lstore 7
start local 7 6: aload 5
ifnull 19
7: aload 5
dup
astore 9
monitorenter
8: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 10
start local 10 9: ifnull 14
aload 10
arraylength
dup
istore 11
start local 11 10: ifle 14
11: aload 10
iload 6
iload 11
iconst_1
isub
iand
dup
istore 12
start local 12 12: aaload
aload 3
if_acmpne 14
13: aload 10
iload 12
aconst_null
aastore
end local 12 end local 11 14: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.lang.Throwable java.util.concurrent.ForkJoinPool$WorkQueue int java.lang.Object int long java.lang.Object java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
aload 0
dup
getfield java.util.concurrent.ForkJoinPool.stealCount:J
lload 7
ladd
putfield java.util.concurrent.ForkJoinPool.stealCount:J
end local 10 15: aload 9
monitorexit
16: goto 19
StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.lang.Throwable java.util.concurrent.ForkJoinPool$WorkQueue int java.lang.Object int long java.lang.Object
StackMap stack: java.lang.Throwable
17: aload 9
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
istore 4
end local 7 end local 6 end local 5 20: StackMap locals:
StackMap stack:
iload 4
ldc 1073741824
if_icmpeq 28
21: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
22: aload 0
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 5
start local 5 23: ldc -281474976710656
lload 5
ldc 281474976710656
lsub
land
24: ldc 281470681743360
lload 5
ldc 4294967296
lsub
land
lor
25: ldc 4294967295
lload 5
land
lor
26: invokevirtual java.lang.invoke.VarHandle.weakCompareAndSet:(Ljava/util/concurrent/ForkJoinPool;JJ)Z
27: ifeq 21
end local 5 28: StackMap locals:
StackMap stack:
aload 3
ifnull 30
29: aload 3
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.cancelAll:()V
30: StackMap locals:
StackMap stack:
aload 0
iconst_0
iconst_0
invokevirtual java.util.concurrent.ForkJoinPool.tryTerminate:(ZZ)Z
ifne 33
31: aload 3
ifnull 33
aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
ifnull 33
32: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.signalWork:()V
33: StackMap locals:
StackMap stack:
aload 2
ifnonnull 35
34: invokestatic java.util.concurrent.ForkJoinTask.helpExpungeStaleExceptions:()V
goto 36
35: StackMap locals:
StackMap stack:
aload 2
invokestatic java.util.concurrent.ForkJoinTask.rethrow:(Ljava/lang/Throwable;)V
36: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Ljava/util/concurrent/ForkJoinPool;
0 37 1 wt Ljava/util/concurrent/ForkJoinWorkerThread;
0 37 2 ex Ljava/lang/Throwable;
1 37 3 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
2 37 4 phase I
4 20 5 lock Ljava/lang/Object;
5 20 6 wid I
6 20 7 ns J
9 15 10 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
10 14 11 n I
12 14 12 i I
23 28 5 c J
Exception table:
from to target type
8 16 17 any
17 18 17 any
MethodParameters:
Name Flags
wt
ex
final void signalWork();
descriptor: ()V
flags: (0x0010) ACC_FINAL
Code:
stack=8, locals=12, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 1
start local 1 1: lconst_0
lcmp
iflt 3
2: goto 25
3: StackMap locals: long
StackMap stack:
lload 1
l2i
dup
istore 3
start local 3 4: ifne 8
5: lload 1
ldc 140737488355328
land
lconst_0
lcmp
ifeq 25
6: aload 0
lload 1
invokevirtual java.util.concurrent.ForkJoinPool.tryAddWorker:(J)V
7: goto 25
8: StackMap locals: int
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 4
start local 4 9: ifnonnull 11
10: goto 25
11: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
aload 4
arraylength
iload 3
ldc 65535
iand
dup
istore 5
start local 5 12: if_icmpgt 14
13: goto 25
14: StackMap locals: int
StackMap stack:
aload 4
iload 5
aaload
dup
astore 6
start local 6 15: ifnonnull 17
16: goto 25
17: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
iload 3
ldc 2147483647
iand
istore 7
start local 7 18: aload 6
getfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
istore 8
start local 8 19: aload 6
getfield java.util.concurrent.ForkJoinPool$WorkQueue.stackPred:I
i2l
ldc 4294967295
land
ldc -4294967296
lload 1
ldc 281474976710656
ladd
land
lor
lstore 9
start local 9 20: aload 6
getfield java.util.concurrent.ForkJoinPool$WorkQueue.owner:Ljava/util/concurrent/ForkJoinWorkerThread;
astore 11
start local 11 21: iload 3
iload 8
if_icmpne 0
getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 0
lload 1
lload 9
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Ljava/util/concurrent/ForkJoinPool;JJ)Z
ifeq 0
22: aload 6
iload 7
putfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
23: aload 11
ifnull 25
aload 6
getfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
ifge 25
24: aload 11
invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
end local 11 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 25: StackMap locals: java.util.concurrent.ForkJoinPool
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Ljava/util/concurrent/ForkJoinPool;
1 25 1 c J
4 25 3 sp I
9 25 4 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
12 25 5 i I
15 25 6 v Ljava/util/concurrent/ForkJoinPool$WorkQueue;
18 25 7 np I
19 25 8 vp I
20 25 9 nc J
21 25 11 vt Ljava/lang/Thread;
private int tryCompensate(java.util.concurrent.ForkJoinPool$WorkQueue);
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=17, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lstore 5
start local 5 1: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 7
start local 7 2: lload 5
bipush 32
lushr
l2i
i2s
dup
istore 2
start local 2 3: iflt 67
4: aload 7
ifnull 6
aload 7
arraylength
dup
istore 3
start local 3 5: ifle 6
aload 1
ifnonnull 7
end local 3 6: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int top top long java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
iconst_0
ireturn
start local 3 7: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int top long java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
lload 5
l2i
dup
istore 4
start local 4 8: ifeq 27
9: aload 7
iload 4
iload 3
iconst_1
isub
iand
aaload
astore 8
start local 8 10: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
istore 9
start local 9 11: ldc -4294967296
iload 9
ifge 12
lload 5
ldc 281474976710656
ladd
goto 13
StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack: long
12: lload 5
StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack: long long
13: land
lstore 10
start local 10 14: iload 4
ldc 2147483647
iand
istore 12
start local 12 15: aload 8
ifnull 26
16: aload 8
getfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
istore 13
start local 13 17: aload 8
getfield java.util.concurrent.ForkJoinPool$WorkQueue.owner:Ljava/util/concurrent/ForkJoinWorkerThread;
astore 14
start local 14 18: aload 8
getfield java.util.concurrent.ForkJoinPool$WorkQueue.stackPred:I
i2l
ldc 4294967295
land
lload 10
lor
lstore 15
start local 15 19: iload 13
iload 4
if_icmpne 26
getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 0
lload 5
lload 15
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Ljava/util/concurrent/ForkJoinPool;JJ)Z
ifeq 26
20: aload 8
iload 12
putfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
21: aload 14
ifnull 23
aload 8
getfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
ifge 23
22: aload 14
invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
23: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int long int int java.lang.Thread long
StackMap stack:
iload 9
ifge 24
iconst_m1
goto 25
StackMap locals:
StackMap stack:
24: iconst_1
StackMap locals:
StackMap stack: int
25: ireturn
end local 15 end local 14 end local 13 26: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 12 end local 10 end local 9 end local 8 27: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int long java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
lload 5
bipush 48
lshr
l2i
28: aload 0
getfield java.util.concurrent.ForkJoinPool.bounds:I
ldc 65535
iand
i2s
29: isub
ifle 34
30: ldc -281474976710656
lload 5
ldc 281474976710656
lsub
land
ldc 281474976710655
lload 5
land
lor
lstore 8
start local 8 31: getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 0
lload 5
lload 8
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Ljava/util/concurrent/ForkJoinPool;JJ)Z
ifeq 32
iconst_1
goto 33
StackMap locals: long
StackMap stack:
32: iconst_0
StackMap locals:
StackMap stack: int
33: ireturn
end local 8 34: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
istore 8
start local 8 35: iload 8
ldc 65535
iand
istore 9
start local 9 36: iload 9
iload 2
iadd
istore 10
start local 10 37: iconst_0
istore 11
start local 11 38: iconst_0
istore 12
start local 12 39: iconst_1
istore 13
start local 13 40: goto 54
41: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int int int
StackMap stack:
aload 7
iload 13
aaload
dup
astore 14
start local 14 42: ifnull 53
43: aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
ifne 46
44: iconst_1
istore 12
45: goto 55
46: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
iinc 10 -1
47: aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.owner:Ljava/util/concurrent/ForkJoinWorkerThread;
dup
astore 15
start local 15 48: ifnull 53
49: aload 15
invokevirtual java.lang.Thread.getState:()Ljava/lang/Thread$State;
dup
astore 16
start local 16 50: getstatic java.lang.Thread$State.BLOCKED:Ljava/lang/Thread$State;
if_acmpeq 52
51: aload 16
getstatic java.lang.Thread$State.WAITING:Ljava/lang/Thread$State;
if_acmpne 53
52: StackMap locals: java.lang.Thread java.lang.Thread$State
StackMap stack:
iinc 11 1
end local 16 end local 15 end local 14 53: StackMap locals:
StackMap stack:
iinc 13 2
StackMap locals:
StackMap stack:
54: iload 13
iload 3
if_icmplt 41
end local 13 55: StackMap locals:
StackMap stack:
iload 12
ifne 56
iload 10
ifne 56
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lload 5
lcmp
ifeq 57
56: StackMap locals:
StackMap stack:
iconst_0
ireturn
57: StackMap locals:
StackMap stack:
iload 2
iload 9
iadd
sipush 32767
if_icmpge 58
iload 2
aload 0
getfield java.util.concurrent.ForkJoinPool.bounds:I
bipush 16
iushr
if_icmplt 67
58: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.saturate:Ljava/util/function/Predicate;
dup
astore 13
start local 13 59: ifnull 61
aload 13
aload 0
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifeq 61
60: iconst_m1
ireturn
61: StackMap locals: java.util.function.Predicate
StackMap stack:
iload 11
iload 9
if_icmpge 64
62: invokestatic java.lang.Thread.yield:()V
63: iconst_0
ireturn
64: StackMap locals:
StackMap stack:
new java.util.concurrent.RejectedExecutionException
dup
65: ldc "Thread limit exceeded replacing blocked worker"
66: invokespecial java.util.concurrent.RejectedExecutionException.<init>:(Ljava/lang/String;)V
athrow
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 4 end local 3 67: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int top top long java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
lload 5
ldc 4294967296
ladd
ldc 281470681743360
land
lload 5
ldc -281470681743361
land
lor
lstore 8
start local 8 68: getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 0
lload 5
lload 8
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Ljava/util/concurrent/ForkJoinPool;JJ)Z
ifeq 69
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.createWorker:()Z
ifeq 69
iconst_1
goto 70
StackMap locals: long
StackMap stack:
69: iconst_0
StackMap locals:
StackMap stack: int
70: ireturn
end local 8 end local 7 end local 5 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 71 0 this Ljava/util/concurrent/ForkJoinPool;
0 71 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
3 71 2 t I
5 6 3 n I
7 67 3 n I
8 67 4 sp I
1 71 5 c J
2 71 7 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
10 27 8 v Ljava/util/concurrent/ForkJoinPool$WorkQueue;
11 27 9 wp I
14 27 10 uc J
15 27 12 np I
17 26 13 vp I
18 26 14 vt Ljava/lang/Thread;
19 26 15 nc J
31 34 8 nc J
35 67 8 md I
36 67 9 pc I
37 67 10 tc I
38 67 11 bc I
39 67 12 unstable Z
40 55 13 i I
42 53 14 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
48 53 15 wt Ljava/lang/Thread;
50 53 16 ts Ljava/lang/Thread$State;
59 67 13 sat Ljava/util/function/Predicate<-Ljava/util/concurrent/ForkJoinPool;>;
68 71 8 nc J
MethodParameters:
Name Flags
w
final void runWorker(java.util.concurrent.ForkJoinPool$WorkQueue);
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=13, args_size=2
start local 0 start local 1 0: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.id:I
invokestatic java.util.concurrent.ThreadLocalRandom.nextSecondarySeed:()I
ixor
ldc 65536
ior
istore 2
start local 2 1: aload 1
sipush 8192
anewarray java.util.concurrent.ForkJoinTask
putfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
2: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 2
invokevirtual java.util.concurrent.ForkJoinPool.scan:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)Z
ifeq 5
3: iload 2
iload 2
bipush 13
ishl
ixor
istore 2
iload 2
iload 2
bipush 17
iushr
ixor
istore 2
iload 2
iload 2
iconst_5
ishl
ixor
istore 2
4: goto 2
5: StackMap locals:
StackMap stack:
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
dup
istore 3
start local 3 6: iflt 13
7: aload 1
iload 3
ldc 65536
iadd
ldc -2147483648
ior
dup_x1
putfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
i2l
ldc 4294967295
land
lstore 4
start local 4 8: StackMap locals: int long
StackMap stack:
aload 1
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 6
start local 6 9: l2i
putfield java.util.concurrent.ForkJoinPool$WorkQueue.stackPred:I
10: lload 6
ldc 281474976710656
lsub
ldc -4294967296
land
lload 4
lor
lstore 8
start local 8 11: getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 0
lload 6
lload 8
invokevirtual java.lang.invoke.VarHandle.weakCompareAndSet:(Ljava/util/concurrent/ForkJoinPool;JJ)Z
ifeq 8
end local 8 end local 6 end local 4 12: goto 2
13: StackMap locals:
StackMap stack:
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.stackPred:I
istore 4
start local 4 14: invokestatic java.lang.Thread.interrupted:()Z
pop
15: aload 1
ldc -1073741824
putfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
16: aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lstore 5
start local 5 17: aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
istore 7
start local 7 18: iload 7
ldc 65535
iand
lload 5
bipush 48
lshr
l2i
iadd
istore 8
start local 8 19: iload 7
ifge 21
20: goto 37
21: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int long int int
StackMap stack:
iload 8
ifgt 24
iload 7
ldc 262144
iand
ifeq 24
22: aload 0
iconst_0
iconst_0
invokevirtual java.util.concurrent.ForkJoinPool.tryTerminate:(ZZ)Z
ifeq 24
23: goto 37
24: StackMap locals:
StackMap stack:
iload 8
ifgt 33
iload 4
ifeq 33
iload 3
lload 5
l2i
if_icmpne 33
25: ldc -4294967296
lload 5
ldc 4294967296
lsub
land
ldc 4294967295
iload 4
i2l
land
lor
lstore 9
start local 9 26: aload 0
getfield java.util.concurrent.ForkJoinPool.keepAlive:J
invokestatic java.lang.System.currentTimeMillis:()J
ladd
lstore 11
start local 11 27: aload 0
lload 11
invokestatic java.util.concurrent.locks.LockSupport.parkUntil:(Ljava/lang/Object;J)V
28: aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lload 5
lcmp
ifne 35
29: lload 11
invokestatic java.lang.System.currentTimeMillis:()J
lsub
ldc 20
lcmp
ifgt 35
30: getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 0
lload 5
lload 9
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Ljava/util/concurrent/ForkJoinPool;JJ)Z
ifeq 35
31: aload 1
ldc 1073741824
putfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
32: goto 37
end local 11 end local 9 33: StackMap locals:
StackMap stack:
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
ifge 35
34: aload 0
invokestatic java.util.concurrent.locks.LockSupport.park:(Ljava/lang/Object;)V
35: StackMap locals:
StackMap stack:
aload 1
iconst_0
putfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
end local 8 end local 7 end local 5 end local 4 end local 3 36: goto 2
37: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Ljava/util/concurrent/ForkJoinPool;
0 38 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
1 38 2 r I
6 36 3 phase I
8 12 4 np J
9 12 6 c J
11 12 8 nc J
14 36 4 pred I
17 36 5 c J
18 36 7 md I
19 36 8 rc I
26 33 9 nc J
27 33 11 d J
MethodParameters:
Name Flags
w
private boolean scan(java.util.concurrent.ForkJoinPool$WorkQueue, int);
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
start local 3 1: ifnull 27
aload 3
arraylength
dup
istore 4
start local 4 2: ifle 27
aload 1
ifnull 27
3: iload 4
iconst_1
isub
istore 5
start local 5 4: iload 2
iload 5
iand
istore 6
start local 6 5: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int
StackMap stack:
aload 3
iload 6
aaload
dup
astore 7
start local 7 6: ifnull 24
aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
dup
istore 8
start local 8 7: if_icmpeq 24
8: aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.id:I
istore 9
start local 9 9: aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
dup
astore 10
start local 10 10: ifnull 23
aload 10
arraylength
dup
istore 11
start local 11 11: ifle 23
12: getstatic java.util.concurrent.ForkJoinPool.QA:Ljava/lang/invoke/VarHandle;
aload 10
iload 11
iconst_1
isub
iload 8
iand
dup
istore 12
start local 12 13: invokevirtual java.lang.invoke.VarHandle.getAcquire:([Ljava/util/concurrent/ForkJoinTask;I)Ljava/util/concurrent/ForkJoinTask;
astore 13
start local 13 14: aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
iload 8
iinc 8 1
if_icmpne 23
aload 13
ifnull 23
15: getstatic java.util.concurrent.ForkJoinPool.QA:Ljava/lang/invoke/VarHandle;
aload 10
iload 12
aload 13
aconst_null
invokevirtual java.lang.invoke.VarHandle.compareAndSet:([Ljava/util/concurrent/ForkJoinTask;ILjava/util/concurrent/ForkJoinTask;Ljava/lang/Void;)Z
ifeq 23
16: aload 7
iload 8
putfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
17: aload 1
iload 9
putfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
18: aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
iload 8
isub
ifle 20
19: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.signalWork:()V
20: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int java.util.concurrent.ForkJoinPool$WorkQueue int int java.util.concurrent.ForkJoinTask[] int int java.util.concurrent.ForkJoinTask
StackMap stack:
aload 1
aload 13
aload 7
21: iload 2
iload 4
bipush 10
ishl
iconst_1
isub
iand
22: invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec:(Ljava/util/concurrent/ForkJoinTask;Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)V
end local 13 end local 12 end local 11 23: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 10 end local 9 end local 8 24: StackMap locals:
StackMap stack:
iinc 4 -1
iload 4
ifle 27
25: iload 6
iconst_1
iadd
iload 5
iand
istore 6
end local 7 26: goto 5
end local 6 end local 5 end local 4 27: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljava/util/concurrent/ForkJoinPool;
0 28 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
0 28 2 r I
1 28 3 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
2 27 4 n I
4 27 5 m I
5 27 6 j I
6 26 7 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
7 24 8 b I
9 24 9 qid I
10 24 10 a [Ljava/util/concurrent/ForkJoinTask;
11 23 11 cap I
13 23 12 k I
14 23 13 t Ljava/util/concurrent/ForkJoinTask<*>;
MethodParameters:
Name Flags
w
r
final int awaitJoin(java.util.concurrent.ForkJoinPool$WorkQueue, java.util.concurrent.ForkJoinTask<?>, );
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;J)I
flags: (0x0010) ACC_FINAL
Code:
stack=5, locals=21, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 5
start local 5 1: invokestatic java.util.concurrent.ThreadLocalRandom.nextSecondarySeed:()I
istore 6
start local 6 2: aload 1
ifnull 59
aload 2
ifnull 59
3: aload 2
instanceof java.util.concurrent.CountedCompleter
ifeq 5
4: aload 1
aload 2
checkcast java.util.concurrent.CountedCompleter
iconst_0
iconst_0
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.helpCC:(Ljava/util/concurrent/CountedCompleter;IZ)I
dup
istore 5
iflt 59
5: StackMap locals: int int
StackMap stack:
aload 1
aload 2
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.tryRemoveAndExec:(Ljava/util/concurrent/ForkJoinTask;)V
6: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
istore 7
start local 7 7: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.id:I
istore 8
start local 8 8: iload 6
bipush 16
iushr
iconst_1
ior
istore 9
start local 9 9: iload 6
bipush -2
iand
iconst_2
ior
istore 10
start local 10 10: aload 2
getfield java.util.concurrent.ForkJoinTask.status:I
istore 5
11: goto 58
12: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask long int int int int int int
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 11
start local 11 13: ifnonnull 14
iconst_0
goto 15
StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
14: aload 11
arraylength
StackMap locals:
StackMap stack: int
15: istore 12
start local 12 16: iload 12
iconst_1
isub
istore 13
start local 13 17: goto 38
18: StackMap locals: int int
StackMap stack:
aload 11
iload 9
iload 13
iand
aaload
dup
astore 14
start local 14 19: ifnull 36
aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
iload 8
if_icmpne 36
20: aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
dup
istore 15
start local 15 21: if_icmpeq 36
22: aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.id:I
istore 19
start local 19 23: aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
dup
astore 16
start local 16 24: ifnull 39
aload 16
arraylength
dup
istore 17
start local 17 25: ifle 39
26: getstatic java.util.concurrent.ForkJoinPool.QA:Ljava/lang/invoke/VarHandle;
aload 16
iload 17
iconst_1
isub
iload 15
iand
dup
istore 18
start local 18 27: invokevirtual java.lang.invoke.VarHandle.getAcquire:([Ljava/util/concurrent/ForkJoinTask;I)Ljava/util/concurrent/ForkJoinTask;
28: astore 20
start local 20 29: aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
iload 8
if_icmpne 39
aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
iload 15
iinc 15 1
if_icmpne 39
30: aload 20
ifnull 39
getstatic java.util.concurrent.ForkJoinPool.QA:Ljava/lang/invoke/VarHandle;
aload 16
iload 18
aload 20
aconst_null
invokevirtual java.lang.invoke.VarHandle.compareAndSet:([Ljava/util/concurrent/ForkJoinTask;ILjava/util/concurrent/ForkJoinTask;Ljava/lang/Void;)Z
ifeq 39
31: aload 14
iload 15
putfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
32: aload 1
iload 19
putfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
33: aload 20
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
pop
34: aload 1
iload 7
putfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
end local 20 end local 18 end local 17 35: goto 39
end local 19 end local 16 end local 15 36: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
iload 9
iload 10
iadd
istore 9
37: iinc 12 -1
end local 14 38: StackMap locals:
StackMap stack:
iload 12
ifgt 18
39: StackMap locals:
StackMap stack:
aload 2
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 5
ifge 41
40: goto 59
41: StackMap locals:
StackMap stack:
iload 12
ifne 58
42: lload 3
lconst_0
lcmp
ifne 45
43: lconst_0
lstore 14
start local 14 44: goto 51
end local 14 45: StackMap locals:
StackMap stack:
lload 3
invokestatic java.lang.System.nanoTime:()J
lsub
dup2
lstore 16
start local 16 46: lconst_0
lcmp
ifgt 48
47: goto 59
48: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask long int int int int int int java.util.concurrent.ForkJoinPool$WorkQueue[] int int top top long
StackMap stack:
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 16
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
dup2
lstore 14
start local 14 49: lconst_0
lcmp
ifgt 51
50: lconst_1
lstore 14
end local 16 51: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask long int int int int int int java.util.concurrent.ForkJoinPool$WorkQueue[] int int long
StackMap stack:
aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinPool.tryCompensate:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)I
dup
istore 18
start local 18 52: ifeq 57
53: aload 2
lload 14
invokevirtual java.util.concurrent.ForkJoinTask.internalWait:(J)V
54: getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 0
iload 18
ifle 55
ldc 281474976710656
goto 56
StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask long int int int int int int java.util.concurrent.ForkJoinPool$WorkQueue[] int int long top top int
StackMap stack: java.lang.invoke.VarHandle java.util.concurrent.ForkJoinPool
55: lconst_0
StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask long int int int int int int java.util.concurrent.ForkJoinPool$WorkQueue[] int int long top top int
StackMap stack: java.lang.invoke.VarHandle java.util.concurrent.ForkJoinPool long
56: invokevirtual java.lang.invoke.VarHandle.getAndAdd:(Ljava/util/concurrent/ForkJoinPool;J)V
57: StackMap locals:
StackMap stack:
aload 2
getfield java.util.concurrent.ForkJoinTask.status:I
istore 5
end local 18 end local 14 end local 13 end local 12 end local 11 58: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask long int int int int int int
StackMap stack:
iload 5
ifge 12
end local 10 end local 9 end local 8 end local 7 59: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask long int int
StackMap stack:
iload 5
ireturn
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Ljava/util/concurrent/ForkJoinPool;
0 60 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
0 60 2 task Ljava/util/concurrent/ForkJoinTask<*>;
0 60 3 deadline J
1 60 5 s I
2 60 6 seed I
7 59 7 src I
8 59 8 id I
9 59 9 r I
10 59 10 step I
13 58 11 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
16 58 12 n I
17 58 13 m I
19 38 14 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
21 36 15 b I
24 36 16 a [Ljava/util/concurrent/ForkJoinTask;
25 35 17 cap I
27 35 18 k I
23 36 19 qid I
29 35 20 t Ljava/util/concurrent/ForkJoinTask<*>;
44 45 14 ms J
49 58 14 ms J
46 51 16 ns J
52 58 18 block I
Signature: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask<*>;J)I
MethodParameters:
Name Flags
w
task
deadline
final void helpQuiescePool(java.util.concurrent.ForkJoinPool$WorkQueue);
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
flags: (0x0010) ACC_FINAL
Code:
stack=5, locals=22, args_size=2
start local 0 start local 1 0: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
istore 2
start local 2 1: invokestatic java.util.concurrent.ThreadLocalRandom.nextSecondarySeed:()I
istore 3
start local 3 2: iload 3
bipush 16
iushr
istore 4
start local 4 3: iload 4
iconst_1
ior
istore 5
start local 5 4: iload 2
istore 6
start local 6 5: iconst_m1
istore 7
start local 7 6: goto 8
start local 8 7: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int int int int java.util.concurrent.ForkJoinTask
StackMap stack:
aload 8
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
pop
end local 8 8: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.nextLocalTask:()Ljava/util/concurrent/ForkJoinTask;
dup
astore 8
start local 8 9: ifnonnull 7
10: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
iflt 12
iload 7
iconst_m1
if_icmpne 12
11: iconst_1
istore 7
12: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
iconst_1
istore 10
start local 10 13: iconst_1
istore 11
start local 11 14: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 9
start local 9 15: ifnonnull 16
iconst_0
goto 17
StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue[] int int
StackMap stack:
16: aload 9
arraylength
StackMap locals:
StackMap stack: int
17: istore 12
start local 12 18: iload 12
iconst_1
isub
istore 13
start local 13 19: goto 46
20: StackMap locals: int int
StackMap stack:
aload 9
iload 4
iload 13
iand
aaload
dup
astore 14
start local 14 21: ifnull 45
22: aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
istore 16
start local 16 23: aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
dup
istore 15
start local 15 24: if_icmpeq 43
25: iconst_0
dup
istore 11
istore 10
26: aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.id:I
istore 20
start local 20 27: aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
dup
astore 17
start local 17 28: ifnull 47
aload 17
arraylength
dup
istore 18
start local 18 29: ifle 47
30: iload 7
ifne 33
31: iconst_1
istore 7
32: getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 0
ldc 281474976710656
invokevirtual java.lang.invoke.VarHandle.getAndAdd:(Ljava/util/concurrent/ForkJoinPool;J)V
33: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int int int int java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int java.util.concurrent.ForkJoinPool$WorkQueue int int java.util.concurrent.ForkJoinTask[] int top int
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.QA:Ljava/lang/invoke/VarHandle;
aload 17
iload 18
iconst_1
isub
iload 15
iand
dup
istore 19
start local 19 34: invokevirtual java.lang.invoke.VarHandle.getAcquire:([Ljava/util/concurrent/ForkJoinTask;I)Ljava/util/concurrent/ForkJoinTask;
35: astore 21
start local 21 36: aload 14
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
iload 15
iinc 15 1
if_icmpne 47
aload 21
ifnull 47
37: getstatic java.util.concurrent.ForkJoinPool.QA:Ljava/lang/invoke/VarHandle;
aload 17
iload 19
aload 21
aconst_null
invokevirtual java.lang.invoke.VarHandle.compareAndSet:([Ljava/util/concurrent/ForkJoinTask;ILjava/util/concurrent/ForkJoinTask;Ljava/lang/Void;)Z
ifeq 47
38: aload 14
iload 15
putfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
39: aload 1
iload 20
putfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
40: aload 21
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
pop
41: aload 1
iload 2
dup
istore 6
putfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
end local 21 end local 19 end local 18 42: goto 47
end local 20 end local 17 43: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int int int int java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int java.util.concurrent.ForkJoinPool$WorkQueue int int
StackMap stack:
iload 16
ldc 1073741824
iand
ifne 45
44: iconst_0
istore 10
end local 16 end local 15 end local 14 45: StackMap locals:
StackMap stack:
iload 4
iload 5
iadd
istore 4
iinc 12 -1
StackMap locals:
StackMap stack:
46: iload 12
ifgt 20
end local 13 47: StackMap locals:
StackMap stack:
iload 10
ifeq 52
48: iload 7
ifne 50
49: getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 0
ldc 281474976710656
invokevirtual java.lang.invoke.VarHandle.getAndAdd:(Ljava/util/concurrent/ForkJoinPool;J)V
50: StackMap locals:
StackMap stack:
aload 1
iload 2
putfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
51: goto 59
52: StackMap locals:
StackMap stack:
iload 11
ifeq 58
53: iload 6
ldc 1073741824
if_icmpeq 55
54: aload 1
ldc 1073741824
dup
istore 6
putfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
55: StackMap locals:
StackMap stack:
iload 7
iconst_1
if_icmpne 58
56: iconst_0
istore 7
57: getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 0
ldc -281474976710656
invokevirtual java.lang.invoke.VarHandle.getAndAdd:(Ljava/util/concurrent/ForkJoinPool;J)V
end local 12 end local 11 end local 10 end local 9 end local 8 58: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int int int int
StackMap stack:
goto 8
end local 7 end local 6 59: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Ljava/util/concurrent/ForkJoinPool;
0 60 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
1 60 2 prevSrc I
2 60 3 seed I
3 60 4 r I
4 60 5 step I
5 59 6 source I
6 59 7 released I
7 8 8 localTask Ljava/util/concurrent/ForkJoinTask<*>;
9 58 8 localTask Ljava/util/concurrent/ForkJoinTask<*>;
15 58 9 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
13 58 10 quiet Z
14 58 11 empty Z
18 58 12 n I
19 47 13 m I
21 45 14 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
24 45 15 b I
23 45 16 qs I
28 43 17 a [Ljava/util/concurrent/ForkJoinTask;
29 42 18 cap I
34 42 19 k I
27 43 20 qid I
36 42 21 t Ljava/util/concurrent/ForkJoinTask<*>;
MethodParameters:
Name Flags
w
private java.util.concurrent.ForkJoinTask<?> pollScan(boolean);
descriptor: (Z)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=16, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
ldc -2147483648
iand
ifne 32
aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 2
start local 2 1: ifnull 32
2: aload 2
arraylength
dup
istore 3
start local 3 3: ifle 32
4: iload 3
iconst_1
isub
istore 4
start local 4 5: invokestatic java.util.concurrent.ThreadLocalRandom.nextSecondarySeed:()I
istore 5
start local 5 6: iload 5
bipush 16
iushr
istore 6
start local 6 7: iload 1
ifeq 11
8: iload 5
bipush -2
iand
iload 4
iand
istore 7
start local 7 9: iload 6
bipush -2
iand
iconst_2
ior
istore 8
start local 8 10: goto 13
end local 8 end local 7 11: StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int
StackMap stack:
iload 5
iload 4
iand
istore 7
start local 7 12: iload 6
iconst_1
ior
istore 8
start local 8 13: StackMap locals: int int
StackMap stack:
iconst_0
istore 9
start local 9 14: iload 7
istore 10
start local 10 15: iconst_0
istore 11
start local 11 16: iconst_0
istore 12
start local 12 17: StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int int int int int int int
StackMap stack:
aload 2
iload 10
aaload
dup
astore 13
start local 13 18: ifnull 26
19: aload 13
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
aload 13
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
dup
istore 14
start local 14 20: isub
ifle 25
21: iconst_1
istore 9
22: aload 13
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.poll:()Ljava/util/concurrent/ForkJoinTask;
dup
astore 15
start local 15 23: ifnull 26
24: aload 15
areturn
end local 15 25: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack:
iload 12
iload 14
aload 13
getfield java.util.concurrent.ForkJoinPool$WorkQueue.id:I
iadd
iadd
istore 12
end local 14 26: StackMap locals:
StackMap stack:
iload 10
iload 8
iadd
iload 4
iand
dup
istore 10
iload 7
if_icmpne 17
27: iload 9
ifne 29
iload 11
iload 12
dup
istore 11
if_icmpne 29
28: goto 32
29: StackMap locals:
StackMap stack:
iconst_0
istore 12
30: iconst_0
istore 9
end local 13 31: goto 17
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 32: StackMap locals: java.util.concurrent.ForkJoinPool int
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Ljava/util/concurrent/ForkJoinPool;
0 33 1 submissionsOnly Z
1 32 2 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
3 32 3 n I
5 32 4 m I
6 32 5 r I
7 32 6 h I
9 11 7 origin I
12 32 7 origin I
10 11 8 step I
13 32 8 step I
14 32 9 nonempty Z
15 32 10 i I
16 32 11 oldSum I
17 32 12 checkSum I
18 31 13 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
20 26 14 b I
23 25 15 t Ljava/util/concurrent/ForkJoinTask<*>;
Signature: (Z)Ljava/util/concurrent/ForkJoinTask<*>;
MethodParameters:
Name Flags
submissionsOnly
final java.util.concurrent.ForkJoinTask<?> nextTaskFor(java.util.concurrent.ForkJoinPool$WorkQueue);
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.nextLocalTask:()Ljava/util/concurrent/ForkJoinTask;
dup
astore 2
start local 2 1: ifnonnull 3
end local 2 2: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual java.util.concurrent.ForkJoinPool.pollScan:(Z)Ljava/util/concurrent/ForkJoinTask;
astore 2
start local 2 3: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinPool;
0 4 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
1 2 2 t Ljava/util/concurrent/ForkJoinTask<*>;
3 4 2 t Ljava/util/concurrent/ForkJoinTask<*>;
Signature: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Ljava/util/concurrent/ForkJoinTask<*>;
MethodParameters:
Name Flags
w
final void externalPush(java.util.concurrent.ForkJoinTask<?>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;)V
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=14, args_size=2
start local 0 start local 1 0: invokestatic java.util.concurrent.ThreadLocalRandom.getProbe:()I
dup
istore 2
start local 2 1: ifne 4
2: invokestatic java.util.concurrent.ThreadLocalRandom.localInit:()V
3: invokestatic java.util.concurrent.ThreadLocalRandom.getProbe:()I
istore 2
4: StackMap locals: int
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
istore 4
start local 4 5: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 6
start local 6 6: iload 4
ldc 262144
iand
ifne 8
aload 6
ifnull 8
aload 6
arraylength
dup
istore 5
start local 5 7: ifgt 9
end local 5 8: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask int top int top java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
new java.util.concurrent.RejectedExecutionException
dup
invokespecial java.util.concurrent.RejectedExecutionException.<init>:()V
athrow
start local 5 9: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask int top int int java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
aload 6
iload 5
iconst_1
isub
iload 2
iand
bipush 126
iand
aaload
dup
astore 3
start local 3 10: ifnonnull 31
11: iload 2
ldc 1073741824
ior
ldc -65538
iand
istore 7
start local 7 12: aload 0
getfield java.util.concurrent.ForkJoinPool.workerNamePrefix:Ljava/lang/String;
astore 8
start local 8 13: sipush 8192
anewarray java.util.concurrent.ForkJoinTask
14: astore 9
start local 9 15: new java.util.concurrent.ForkJoinPool$WorkQueue
dup
aload 0
aconst_null
invokespecial java.util.concurrent.ForkJoinPool$WorkQueue.<init>:(Ljava/util/concurrent/ForkJoinPool;Ljava/util/concurrent/ForkJoinWorkerThread;)V
astore 3
16: aload 3
aload 9
putfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
17: aload 3
iload 7
putfield java.util.concurrent.ForkJoinPool$WorkQueue.id:I
18: aload 3
ldc 1073741824
putfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
19: aload 8
ifnull 4
20: aload 8
dup
astore 10
monitorenter
21: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 11
start local 11 22: ifnull 27
aload 11
arraylength
dup
istore 13
start local 13 23: ifle 27
24: aload 11
iload 7
iload 13
iconst_1
isub
iand
bipush 126
iand
dup
istore 12
start local 12 25: aaload
ifnonnull 27
26: aload 11
iload 12
aload 3
aastore
end local 13 end local 12 end local 11 27: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinPool$WorkQueue int int java.util.concurrent.ForkJoinPool$WorkQueue[] int java.lang.Object java.util.concurrent.ForkJoinTask[] java.lang.Object
StackMap stack:
aload 10
monitorexit
28: goto 4
StackMap locals:
StackMap stack: java.lang.Throwable
29: aload 10
monitorexit
30: athrow
end local 9 end local 8 end local 7 31: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinPool$WorkQueue int int java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
aload 3
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.tryLockPhase:()Z
ifne 33
32: iload 2
invokestatic java.util.concurrent.ThreadLocalRandom.advanceProbe:(I)I
istore 2
goto 4
33: StackMap locals:
StackMap stack:
aload 3
aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.lockedPush:(Ljava/util/concurrent/ForkJoinTask;)Z
ifeq 35
34: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.signalWork:()V
35: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Ljava/util/concurrent/ForkJoinPool;
0 36 1 task Ljava/util/concurrent/ForkJoinTask<*>;
1 36 2 r I
10 36 3 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
5 36 4 md I
7 8 5 n I
9 36 5 n I
6 36 6 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
12 31 7 qid I
13 31 8 lock Ljava/lang/Object;
15 31 9 qa [Ljava/util/concurrent/ForkJoinTask;
22 27 11 vs [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
25 27 12 i I
23 27 13 vn I
Exception table:
from to target type
21 28 29 any
29 30 29 any
Signature: (Ljava/util/concurrent/ForkJoinTask<*>;)V
MethodParameters:
Name Flags
task
private <T> java.util.concurrent.ForkJoinTask<T> externalSubmit(java.util.concurrent.ForkJoinTask<T>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 2
start local 2 3: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 9
4: aload 2
checkcast java.util.concurrent.ForkJoinWorkerThread
dup
astore 3
start local 3 5: getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
aload 0
if_acmpne 9
6: aload 3
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 4
start local 4 7: ifnull 9
8: aload 4
aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.push:(Ljava/util/concurrent/ForkJoinTask;)V
goto 10
end local 4 end local 3 9: StackMap locals: java.lang.Thread
StackMap stack:
aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinPool.externalPush:(Ljava/util/concurrent/ForkJoinTask;)V
10: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/concurrent/ForkJoinPool;
0 11 1 task Ljava/util/concurrent/ForkJoinTask<TT;>;
3 11 2 t Ljava/lang/Thread;
5 9 3 w Ljava/util/concurrent/ForkJoinWorkerThread;
7 9 4 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/ForkJoinTask<TT;>;)Ljava/util/concurrent/ForkJoinTask<TT;>;
MethodParameters:
Name Flags
task
static java.util.concurrent.ForkJoinPool$WorkQueue commonSubmitterQueue();
descriptor: ()Ljava/util/concurrent/ForkJoinPool$WorkQueue;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=0
0: getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
astore 0
start local 0 1: invokestatic java.util.concurrent.ThreadLocalRandom.getProbe:()I
istore 1
start local 1 2: aload 0
ifnull 7
aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 2
start local 2 3: ifnull 7
4: aload 2
arraylength
dup
istore 3
start local 3 5: ifle 7
6: aload 2
iload 3
iconst_1
isub
iload 1
iand
bipush 126
iand
aaload
goto 8
end local 3 end local 2 StackMap locals: java.util.concurrent.ForkJoinPool int
StackMap stack:
7: aconst_null
8: StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinPool$WorkQueue
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 9 0 p Ljava/util/concurrent/ForkJoinPool;
2 9 1 r I
3 7 2 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
5 7 3 n I
final boolean tryExternalUnpush(java.util.concurrent.ForkJoinTask<?>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;)Z
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: invokestatic java.util.concurrent.ThreadLocalRandom.getProbe:()I
istore 2
start local 2 1: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
start local 3 2: ifnull 9
3: aload 3
arraylength
dup
istore 5
start local 5 4: ifle 9
5: aload 3
iload 5
iconst_1
isub
iload 2
iand
bipush 126
iand
aaload
dup
astore 4
start local 4 6: ifnull 9
7: aload 4
aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.tryLockedUnpush:(Ljava/util/concurrent/ForkJoinTask;)Z
ifeq 9
end local 5 end local 4 8: iconst_1
ireturn
StackMap locals: int java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
9: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/ForkJoinPool;
0 10 1 task Ljava/util/concurrent/ForkJoinTask<*>;
1 10 2 r I
2 10 3 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
6 8 4 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
4 8 5 n I
Signature: (Ljava/util/concurrent/ForkJoinTask<*>;)Z
MethodParameters:
Name Flags
task
final int externalHelpComplete(java.util.concurrent.CountedCompleter<?>, );
descriptor: (Ljava/util/concurrent/CountedCompleter;I)I
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.util.concurrent.ThreadLocalRandom.getProbe:()I
istore 3
start local 3 1: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 4
start local 4 2: ifnull 7
aload 4
arraylength
dup
istore 6
start local 6 3: ifle 7
4: aload 4
iload 6
iconst_1
isub
iload 3
iand
bipush 126
iand
aaload
dup
astore 5
start local 5 5: ifnull 7
6: aload 5
aload 1
iload 2
iconst_1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.helpCC:(Ljava/util/concurrent/CountedCompleter;IZ)I
goto 8
end local 6 end local 5 StackMap locals: int java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
7: iconst_0
8: StackMap locals:
StackMap stack: int
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/ForkJoinPool;
0 9 1 task Ljava/util/concurrent/CountedCompleter<*>;
0 9 2 maxTasks I
1 9 3 r I
2 9 4 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
5 7 5 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
3 7 6 n I
Signature: (Ljava/util/concurrent/CountedCompleter<*>;I)I
MethodParameters:
Name Flags
task
maxTasks
final int helpComplete(java.util.concurrent.ForkJoinPool$WorkQueue, java.util.concurrent.CountedCompleter<?>, );
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/CountedCompleter;I)I
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnonnull 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 1
aload 2
iload 3
iconst_0
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.helpCC:(Ljava/util/concurrent/CountedCompleter;IZ)I
StackMap locals:
StackMap stack: int
2: ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ForkJoinPool;
0 3 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
0 3 2 task Ljava/util/concurrent/CountedCompleter<*>;
0 3 3 maxTasks I
Signature: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/CountedCompleter<*>;I)I
MethodParameters:
Name Flags
w
task
maxTasks
static int getSurplusQueuedTaskCount();
descriptor: ()I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=7, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 0
start local 0 1: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 16
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
dup
astore 1
start local 1 3: getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
dup
astore 2
start local 2 4: ifnull 16
5: aload 1
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
start local 3 6: ifnull 16
7: aload 2
getfield java.util.concurrent.ForkJoinPool.mode:I
ldc 65535
iand
istore 4
start local 4 8: iload 4
aload 2
getfield java.util.concurrent.ForkJoinPool.ctl:J
bipush 48
lshr
l2i
iadd
istore 5
start local 5 9: aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
isub
istore 6
start local 6 10: iload 6
iload 5
iload 4
iconst_1
iushr
dup
istore 4
if_icmple 11
iconst_0
goto 15
11: StackMap locals: java.lang.Thread java.util.concurrent.ForkJoinWorkerThread java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int
StackMap stack: int
iload 5
iload 4
iconst_1
iushr
dup
istore 4
if_icmple 12
iconst_1
goto 15
12: StackMap locals:
StackMap stack: int
iload 5
iload 4
iconst_1
iushr
dup
istore 4
if_icmple 13
iconst_2
goto 15
13: StackMap locals:
StackMap stack: int
iload 5
iload 4
iconst_1
iushr
dup
istore 4
if_icmple 14
iconst_4
goto 15
14: StackMap locals:
StackMap stack: int
bipush 8
15: StackMap locals: java.lang.Thread java.util.concurrent.ForkJoinWorkerThread java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int
StackMap stack: int int
isub
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 16: StackMap locals: java.lang.Thread
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 17 0 t Ljava/lang/Thread;
3 16 1 wt Ljava/util/concurrent/ForkJoinWorkerThread;
4 16 2 pool Ljava/util/concurrent/ForkJoinPool;
6 16 3 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
8 16 4 p I
9 16 5 a I
10 16 6 n I
private boolean tryTerminate(boolean, boolean);
descriptor: (ZZ)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=16, args_size=3
start local 0 start local 1 start local 2 0: goto 4
start local 3 1: StackMap locals: int
StackMap stack:
iload 2
ifeq 2
aload 0
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
if_acmpne 3
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.MODE:Ljava/lang/invoke/VarHandle;
aload 0
iload 3
iload 3
ldc 262144
ior
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Ljava/util/concurrent/ForkJoinPool;II)V
end local 3 4: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
dup
istore 3
start local 3 5: ldc 262144
iand
ifeq 1
6: goto 41
7: StackMap locals: int
StackMap stack:
iload 1
ifne 39
8: lconst_0
lstore 4
start local 4 9: StackMap locals: long
StackMap stack:
iconst_0
istore 6
start local 6 10: aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lstore 7
start local 7 11: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 9
start local 9 12: iload 3
ldc 65535
iand
lload 7
bipush 48
lshr
l2i
iadd
ifle 14
13: iconst_1
istore 6
goto 34
14: StackMap locals: int long java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
aload 9
ifnull 34
15: iconst_0
istore 11
start local 11 16: goto 33
17: StackMap locals: java.util.concurrent.ForkJoinPool int int int long int long java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
aload 9
iload 11
aaload
dup
astore 10
start local 10 18: ifnull 32
19: aload 10
getfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
istore 12
start local 12 20: aload 10
getfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
istore 13
start local 13 21: aload 10
getfield java.util.concurrent.ForkJoinPool$WorkQueue.id:I
istore 14
start local 14 22: aload 10
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
istore 15
start local 15 23: iload 15
aload 10
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
if_icmpne 25
24: iload 14
iconst_1
iand
iconst_1
if_icmpne 27
iload 12
ifge 25
iload 13
iflt 27
25: StackMap locals: java.util.concurrent.ForkJoinPool int int int long int long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int int int int int
StackMap stack:
iconst_1
istore 6
26: goto 34
27: StackMap locals:
StackMap stack:
lload 7
iload 12
i2l
bipush 48
lshl
iload 13
i2l
bipush 32
lshl
ladd
28: iload 15
i2l
bipush 16
lshl
29: ladd
30: iload 14
i2l
31: ladd
ladd
lstore 7
end local 15 end local 14 end local 13 end local 12 32: StackMap locals: java.util.concurrent.ForkJoinPool int int int long int long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack:
iinc 11 1
end local 10 StackMap locals: java.util.concurrent.ForkJoinPool int int int long int long java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
33: iload 11
aload 9
arraylength
if_icmplt 17
end local 11 34: StackMap locals: java.util.concurrent.ForkJoinPool int int int long int long java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
dup
istore 3
ldc -2147483648
iand
ifeq 36
35: goto 39
36: StackMap locals:
StackMap stack:
iload 6
ifeq 38
37: iconst_0
ireturn
38: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
aload 9
if_acmpne 9
lload 4
lload 7
dup2
lstore 4
lcmp
ifne 9
end local 9 end local 7 end local 6 end local 4 39: StackMap locals: java.util.concurrent.ForkJoinPool int int int
StackMap stack:
iload 3
ldc -2147483648
iand
ifne 41
40: getstatic java.util.concurrent.ForkJoinPool.MODE:Ljava/lang/invoke/VarHandle;
aload 0
iload 3
iload 3
ldc -2147483648
ior
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Ljava/util/concurrent/ForkJoinPool;II)V
41: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
dup
istore 3
ldc -2147483648
iand
ifeq 7
42: goto 73
43: StackMap locals:
StackMap stack:
lconst_0
lstore 4
start local 4 44: StackMap locals: long
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lstore 8
start local 8 45: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 6
start local 6 46: ifnull 60
47: iconst_0
istore 10
start local 10 48: goto 59
49: StackMap locals: java.util.concurrent.ForkJoinPool int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] top long int
StackMap stack:
aload 6
iload 10
aaload
dup
astore 7
start local 7 50: ifnull 58
51: aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.owner:Ljava/util/concurrent/ForkJoinWorkerThread;
astore 11
start local 11 52: aload 7
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.cancelAll:()V
53: aload 11
ifnull 57
54: aload 11
invokevirtual java.util.concurrent.ForkJoinWorkerThread.interrupt:()V
55: goto 57
StackMap locals: java.util.concurrent.ForkJoinPool int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue long int java.util.concurrent.ForkJoinWorkerThread
StackMap stack: java.lang.Throwable
56: pop
57: StackMap locals:
StackMap stack:
lload 8
aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.phase:I
i2l
bipush 32
lshl
aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
i2l
ladd
ladd
lstore 8
end local 11 58: StackMap locals:
StackMap stack:
iinc 10 1
end local 7 StackMap locals: java.util.concurrent.ForkJoinPool int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] top long int
StackMap stack:
59: iload 10
aload 6
arraylength
if_icmplt 49
end local 10 60: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
dup
istore 3
ldc 524288
iand
ifne 62
61: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
aload 6
if_acmpne 44
lload 4
lload 8
dup2
lstore 4
lcmp
ifne 44
end local 8 end local 6 end local 4 62: StackMap locals: java.util.concurrent.ForkJoinPool int int int
StackMap stack:
iload 3
ldc 524288
iand
ifeq 64
63: goto 74
64: StackMap locals:
StackMap stack:
iload 3
ldc 65535
iand
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
bipush 32
lushr
l2i
i2s
iadd
ifle 66
65: goto 74
66: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.MODE:Ljava/lang/invoke/VarHandle;
aload 0
iload 3
iload 3
ldc 524288
ior
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Ljava/util/concurrent/ForkJoinPool;II)Z
ifeq 73
67: aload 0
dup
astore 4
monitorenter
68: aload 0
invokevirtual java.lang.Object.notifyAll:()V
69: aload 4
monitorexit
70: goto 74
StackMap locals: java.util.concurrent.ForkJoinPool int int int java.util.concurrent.ForkJoinPool
StackMap stack: java.lang.Throwable
71: aload 4
monitorexit
72: athrow
73: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
dup
istore 3
ldc 524288
iand
ifeq 43
74: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 75 0 this Ljava/util/concurrent/ForkJoinPool;
0 75 1 now Z
0 75 2 enable Z
1 4 3 md I
5 75 3 md I
9 39 4 oldSum J
10 39 6 running Z
11 39 7 checkSum J
12 39 9 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
18 33 10 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
16 34 11 i I
20 32 12 s I
21 32 13 p I
22 32 14 d I
23 32 15 b I
44 62 4 oldSum J
46 62 6 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
50 59 7 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
45 62 8 checkSum J
48 60 10 i I
52 58 11 wt Ljava/util/concurrent/ForkJoinWorkerThread;
Exception table:
from to target type
54 55 56 Class java.lang.Throwable
68 70 71 any
71 72 71 any
MethodParameters:
Name Flags
now
enable
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=12, locals=1, args_size=1
start local 0 0: aload 0
sipush 32767
invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
invokevirtual java.lang.Runtime.availableProcessors:()I
invokestatic java.lang.Math.min:(II)I
1: getstatic java.util.concurrent.ForkJoinPool.defaultForkJoinWorkerThreadFactory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
aconst_null
iconst_0
2: iconst_0
sipush 32767
iconst_1
aconst_null
ldc 60000
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokespecial java.util.concurrent.ForkJoinPool.<init>:(ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;ZIIILjava/util/function/Predicate;JLjava/util/concurrent/TimeUnit;)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinPool;
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=12, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
getstatic java.util.concurrent.ForkJoinPool.defaultForkJoinWorkerThreadFactory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
aconst_null
iconst_0
1: iconst_0
sipush 32767
iconst_1
aconst_null
ldc 60000
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokespecial java.util.concurrent.ForkJoinPool.<init>:(ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;ZIIILjava/util/function/Predicate;JLjava/util/concurrent/TimeUnit;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ForkJoinPool;
0 3 1 parallelism I
MethodParameters:
Name Flags
parallelism
public void <init>(int, java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory, java.lang.Thread$UncaughtExceptionHandler, boolean);
descriptor: (ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=12, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
iload 1
aload 2
aload 3
iload 4
1: iconst_0
sipush 32767
iconst_1
aconst_null
ldc 60000
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokespecial java.util.concurrent.ForkJoinPool.<init>:(ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;ZIIILjava/util/function/Predicate;JLjava/util/concurrent/TimeUnit;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ForkJoinPool;
0 3 1 parallelism I
0 3 2 factory Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
0 3 3 handler Ljava/lang/Thread$UncaughtExceptionHandler;
0 3 4 asyncMode Z
MethodParameters:
Name Flags
parallelism
factory
handler
asyncMode
public void <init>(int, java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory, java.lang.Thread$UncaughtExceptionHandler, boolean, int, int, int, java.util.function.Predicate<? super java.util.concurrent.ForkJoinPool>, long, java.util.concurrent.TimeUnit);
descriptor: (ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;ZIIILjava/util/function/Predicate;JLjava/util/concurrent/TimeUnit;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=22, args_size=11
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 11 0: aload 0
invokespecial java.util.concurrent.AbstractExecutorService.<init>:()V
1: iload 1
ifle 3
iload 1
sipush 32767
if_icmpgt 3
2: iload 6
iload 1
if_icmplt 3
lload 9
lconst_0
lcmp
ifgt 4
3: StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Thread$UncaughtExceptionHandler int int int int java.util.function.Predicate long java.util.concurrent.TimeUnit
StackMap stack:
new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 2
ifnonnull 6
5: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 11
lload 9
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
ldc 20
invokestatic java.lang.Math.max:(JJ)J
lstore 12
start local 12 7: iload 5
iload 1
invokestatic java.lang.Math.max:(II)I
sipush 32767
invokestatic java.lang.Math.min:(II)I
istore 14
start local 14 8: iload 14
ineg
i2l
bipush 32
lshl
ldc 281470681743360
land
9: iload 1
ineg
i2l
bipush 48
lshl
ldc -281474976710656
land
10: lor
lstore 15
start local 15 11: iload 1
iload 4
ifeq 12
ldc 65536
goto 13
StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Thread$UncaughtExceptionHandler int int int int java.util.function.Predicate long java.util.concurrent.TimeUnit long int long
StackMap stack: int
12: iconst_0
StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Thread$UncaughtExceptionHandler int int int int java.util.function.Predicate long java.util.concurrent.TimeUnit long int long
StackMap stack: int int
13: ior
istore 17
start local 17 14: iload 6
sipush 32767
invokestatic java.lang.Math.min:(II)I
iload 1
isub
istore 18
start local 18 15: iload 7
iconst_0
invokestatic java.lang.Math.max:(II)I
sipush 32767
invokestatic java.lang.Math.min:(II)I
istore 19
start local 19 16: iload 19
iload 1
isub
ldc 65535
iand
iload 18
bipush 16
ishl
ior
istore 20
start local 20 17: iload 1
iconst_1
if_icmple 18
iload 1
iconst_1
isub
goto 19
StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Thread$UncaughtExceptionHandler int int int int java.util.function.Predicate long java.util.concurrent.TimeUnit long int long int int int int
StackMap stack:
18: iconst_1
StackMap locals:
StackMap stack: int
19: istore 21
start local 21 20: iload 21
iload 21
iconst_1
iushr
ior
istore 21
iload 21
iload 21
iconst_2
iushr
ior
istore 21
iload 21
iload 21
iconst_4
iushr
ior
istore 21
iload 21
iload 21
bipush 8
iushr
ior
istore 21
iload 21
iload 21
bipush 16
iushr
ior
istore 21
21: iload 21
iconst_1
iadd
iconst_1
ishl
istore 21
22: aload 0
new java.lang.StringBuilder
dup
ldc "ForkJoinPool-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic java.util.concurrent.ForkJoinPool.nextPoolId:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "-worker-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield java.util.concurrent.ForkJoinPool.workerNamePrefix:Ljava/lang/String;
23: aload 0
iload 21
anewarray java.util.concurrent.ForkJoinPool$WorkQueue
putfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
24: aload 0
aload 2
putfield java.util.concurrent.ForkJoinPool.factory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
25: aload 0
aload 3
putfield java.util.concurrent.ForkJoinPool.ueh:Ljava/lang/Thread$UncaughtExceptionHandler;
26: aload 0
aload 8
putfield java.util.concurrent.ForkJoinPool.saturate:Ljava/util/function/Predicate;
27: aload 0
lload 12
putfield java.util.concurrent.ForkJoinPool.keepAlive:J
28: aload 0
iload 20
putfield java.util.concurrent.ForkJoinPool.bounds:I
29: aload 0
iload 17
putfield java.util.concurrent.ForkJoinPool.mode:I
30: aload 0
lload 15
putfield java.util.concurrent.ForkJoinPool.ctl:J
31: invokestatic java.util.concurrent.ForkJoinPool.checkPermission:()V
32: return
end local 21 end local 20 end local 19 end local 18 end local 17 end local 15 end local 14 end local 12 end local 11 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Ljava/util/concurrent/ForkJoinPool;
0 33 1 parallelism I
0 33 2 factory Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
0 33 3 handler Ljava/lang/Thread$UncaughtExceptionHandler;
0 33 4 asyncMode Z
0 33 5 corePoolSize I
0 33 6 maximumPoolSize I
0 33 7 minimumRunnable I
0 33 8 saturate Ljava/util/function/Predicate<-Ljava/util/concurrent/ForkJoinPool;>;
0 33 9 keepAliveTime J
0 33 11 unit Ljava/util/concurrent/TimeUnit;
7 33 12 ms J
8 33 14 corep I
11 33 15 c J
14 33 17 m I
15 33 18 maxSpares I
16 33 19 minAvail I
17 33 20 b I
20 33 21 n I
Signature: (ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;ZIIILjava/util/function/Predicate<-Ljava/util/concurrent/ForkJoinPool;>;JLjava/util/concurrent/TimeUnit;)V
MethodParameters:
Name Flags
parallelism
factory
handler
asyncMode
corePoolSize
maximumPoolSize
minimumRunnable
saturate
keepAliveTime
unit
private static java.lang.Object newInstanceFromSystemProperty(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
goto 5
3: StackMap locals: java.lang.String
StackMap stack:
invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
iconst_0
anewarray java.lang.Class
4: invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
5: StackMap locals:
StackMap stack: java.lang.Object
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 property Ljava/lang/String;
1 6 1 className Ljava/lang/String;
Exceptions:
throws java.lang.ReflectiveOperationException
MethodParameters:
Name Flags
property
private void <init>(byte);
descriptor: (B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.util.concurrent.AbstractExecutorService.<init>:()V
1: iconst_m1
istore 2
start local 2 2: aconst_null
astore 3
start local 3 3: aconst_null
astore 4
start local 4 4: ldc "java.util.concurrent.ForkJoinPool.common.parallelism"
5: invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 6: aload 5
ifnull 8
7: aload 5
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 2
8: StackMap locals: java.util.concurrent.ForkJoinPool int int java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Thread$UncaughtExceptionHandler java.lang.String
StackMap stack:
ldc "java.util.concurrent.ForkJoinPool.common.threadFactory"
9: invokestatic java.util.concurrent.ForkJoinPool.newInstanceFromSystemProperty:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory
astore 3
10: ldc "java.util.concurrent.ForkJoinPool.common.exceptionHandler"
11: invokestatic java.util.concurrent.ForkJoinPool.newInstanceFromSystemProperty:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.Thread$UncaughtExceptionHandler
astore 4
end local 5 12: goto 14
StackMap locals: java.util.concurrent.ForkJoinPool int int java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Thread$UncaughtExceptionHandler
StackMap stack: java.lang.Exception
13: pop
14: StackMap locals:
StackMap stack:
aload 3
ifnonnull 18
15: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnonnull 17
16: getstatic java.util.concurrent.ForkJoinPool.defaultForkJoinWorkerThreadFactory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
astore 3
goto 18
17: StackMap locals:
StackMap stack:
new java.util.concurrent.ForkJoinPool$InnocuousForkJoinWorkerThreadFactory
dup
invokespecial java.util.concurrent.ForkJoinPool$InnocuousForkJoinWorkerThreadFactory.<init>:()V
astore 3
18: StackMap locals:
StackMap stack:
iload 2
ifge 21
19: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
invokevirtual java.lang.Runtime.availableProcessors:()I
iconst_1
isub
dup
istore 2
ifgt 21
20: iconst_1
istore 2
21: StackMap locals:
StackMap stack:
iload 2
sipush 32767
if_icmple 23
22: sipush 32767
istore 2
23: StackMap locals:
StackMap stack:
iload 2
ineg
i2l
bipush 32
lshl
ldc 281470681743360
land
24: iload 2
ineg
i2l
bipush 48
lshl
ldc -281474976710656
land
25: lor
lstore 5
start local 5 26: iconst_1
iload 2
isub
ldc 65535
iand
getstatic java.util.concurrent.ForkJoinPool.COMMON_MAX_SPARES:I
bipush 16
ishl
ior
istore 7
start local 7 27: iload 2
iconst_1
if_icmple 28
iload 2
iconst_1
isub
goto 29
StackMap locals: long int
StackMap stack:
28: iconst_1
StackMap locals:
StackMap stack: int
29: istore 8
start local 8 30: iload 8
iload 8
iconst_1
iushr
ior
istore 8
iload 8
iload 8
iconst_2
iushr
ior
istore 8
iload 8
iload 8
iconst_4
iushr
ior
istore 8
iload 8
iload 8
bipush 8
iushr
ior
istore 8
iload 8
iload 8
bipush 16
iushr
ior
istore 8
31: iload 8
iconst_1
iadd
iconst_1
ishl
istore 8
32: aload 0
ldc "ForkJoinPool.commonPool-worker-"
putfield java.util.concurrent.ForkJoinPool.workerNamePrefix:Ljava/lang/String;
33: aload 0
iload 8
anewarray java.util.concurrent.ForkJoinPool$WorkQueue
putfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
34: aload 0
aload 3
putfield java.util.concurrent.ForkJoinPool.factory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
35: aload 0
aload 4
putfield java.util.concurrent.ForkJoinPool.ueh:Ljava/lang/Thread$UncaughtExceptionHandler;
36: aload 0
aconst_null
putfield java.util.concurrent.ForkJoinPool.saturate:Ljava/util/function/Predicate;
37: aload 0
ldc 60000
putfield java.util.concurrent.ForkJoinPool.keepAlive:J
38: aload 0
iload 7
putfield java.util.concurrent.ForkJoinPool.bounds:I
39: aload 0
iload 2
putfield java.util.concurrent.ForkJoinPool.mode:I
40: aload 0
lload 5
putfield java.util.concurrent.ForkJoinPool.ctl:J
41: return
end local 8 end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Ljava/util/concurrent/ForkJoinPool;
0 42 1 forCommonPoolOnly B
2 42 2 parallelism I
3 42 3 fac Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
4 42 4 handler Ljava/lang/Thread$UncaughtExceptionHandler;
6 12 5 pp Ljava/lang/String;
26 42 5 c J
27 42 7 b I
30 42 8 n I
Exception table:
from to target type
4 12 13 Class java.lang.Exception
MethodParameters:
Name Flags
forCommonPoolOnly
public static java.util.concurrent.ForkJoinPool commonPool();
descriptor: ()Ljava/util/concurrent/ForkJoinPool;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
areturn
LocalVariableTable:
Start End Slot Name Signature
public <T> T invoke(java.util.concurrent.ForkJoinTask<T>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinPool.externalSubmit:(Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
pop
3: aload 1
invokevirtual java.util.concurrent.ForkJoinTask.join:()Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinPool;
0 4 1 task Ljava/util/concurrent/ForkJoinTask<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/ForkJoinTask<TT;>;)TT;
MethodParameters:
Name Flags
task
public void execute(java.util.concurrent.ForkJoinTask<?>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinPool.externalSubmit:(Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ForkJoinPool;
0 2 1 task Ljava/util/concurrent/ForkJoinTask<*>;
Signature: (Ljava/util/concurrent/ForkJoinTask<*>;)V
MethodParameters:
Name Flags
task
public void execute(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.util.concurrent.ForkJoinTask
ifeq 5
3: aload 1
checkcast java.util.concurrent.ForkJoinTask
astore 2
start local 2 4: goto 6
end local 2 5: StackMap locals:
StackMap stack:
new java.util.concurrent.ForkJoinTask$RunnableExecuteAction
dup
aload 1
invokespecial java.util.concurrent.ForkJoinTask$RunnableExecuteAction.<init>:(Ljava/lang/Runnable;)V
astore 2
start local 2 6: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
aload 0
aload 2
invokevirtual java.util.concurrent.ForkJoinPool.externalSubmit:(Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
pop
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/util/concurrent/ForkJoinPool;
0 8 1 task Ljava/lang/Runnable;
4 5 2 job Ljava/util/concurrent/ForkJoinTask<*>;
6 8 2 job Ljava/util/concurrent/ForkJoinTask<*>;
MethodParameters:
Name Flags
task
public <T> java.util.concurrent.ForkJoinTask<T> submit(java.util.concurrent.ForkJoinTask<T>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinPool.externalSubmit:(Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinPool;
0 1 1 task Ljava/util/concurrent/ForkJoinTask<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/ForkJoinTask<TT;>;)Ljava/util/concurrent/ForkJoinTask<TT;>;
MethodParameters:
Name Flags
task
public <T> java.util.concurrent.ForkJoinTask<T> submit(java.util.concurrent.Callable<T>);
descriptor: (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.util.concurrent.ForkJoinTask$AdaptedCallable
dup
aload 1
invokespecial java.util.concurrent.ForkJoinTask$AdaptedCallable.<init>:(Ljava/util/concurrent/Callable;)V
invokevirtual java.util.concurrent.ForkJoinPool.externalSubmit:(Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinPool;
0 1 1 task Ljava/util/concurrent/Callable<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TT;>;)Ljava/util/concurrent/ForkJoinTask<TT;>;
MethodParameters:
Name Flags
task
public <T> java.util.concurrent.ForkJoinTask<T> submit(java.lang.Runnable, T);
descriptor: (Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new java.util.concurrent.ForkJoinTask$AdaptedRunnable
dup
aload 1
aload 2
invokespecial java.util.concurrent.ForkJoinTask$AdaptedRunnable.<init>:(Ljava/lang/Runnable;Ljava/lang/Object;)V
invokevirtual java.util.concurrent.ForkJoinPool.externalSubmit:(Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinPool;
0 1 1 task Ljava/lang/Runnable;
0 1 2 result TT;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Runnable;TT;)Ljava/util/concurrent/ForkJoinTask<TT;>;
MethodParameters:
Name Flags
task
result
public java.util.concurrent.ForkJoinTask<?> submit(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
instanceof java.util.concurrent.ForkJoinTask
ifeq 4
3: aload 1
checkcast java.util.concurrent.ForkJoinTask
goto 5
4: StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinPool
new java.util.concurrent.ForkJoinTask$AdaptedRunnableAction
dup
aload 1
invokespecial java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.<init>:(Ljava/lang/Runnable;)V
5: StackMap locals: java.util.concurrent.ForkJoinPool java.lang.Runnable
StackMap stack: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask
invokevirtual java.util.concurrent.ForkJoinPool.externalSubmit:(Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/concurrent/ForkJoinPool;
0 6 1 task Ljava/lang/Runnable;
Signature: (Ljava/lang/Runnable;)Ljava/util/concurrent/ForkJoinTask<*>;
MethodParameters:
Name Flags
task
public <T> java.util.List<java.util.concurrent.Future<T>> invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>>);
descriptor: (Ljava/util/Collection;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
aload 1
invokeinterface java.util.Collection.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 2
start local 2 1: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.ArrayList top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.concurrent.Callable
astore 3
start local 3 3: new java.util.concurrent.ForkJoinTask$AdaptedCallable
dup
aload 3
invokespecial java.util.concurrent.ForkJoinTask$AdaptedCallable.<init>:(Ljava/util/concurrent/Callable;)V
astore 5
start local 5 4: aload 2
aload 5
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
5: aload 0
aload 5
invokevirtual java.util.concurrent.ForkJoinPool.externalSubmit:(Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
pop
end local 5 end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: iconst_0
istore 3
start local 3 8: aload 2
invokevirtual java.util.ArrayList.size:()I
istore 4
start local 4 9: goto 12
10: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.ArrayList int int
StackMap stack:
aload 2
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.util.concurrent.ForkJoinTask
invokevirtual java.util.concurrent.ForkJoinTask.quietlyJoin:()V
11: iinc 3 1
StackMap locals:
StackMap stack:
12: iload 3
iload 4
if_icmplt 10
end local 4 end local 3 13: aload 2
14: areturn
15: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.ArrayList
StackMap stack: java.lang.Throwable
astore 3
start local 3 16: iconst_0
istore 4
start local 4 17: aload 2
invokevirtual java.util.ArrayList.size:()I
istore 5
start local 5 18: goto 21
19: StackMap locals: java.lang.Throwable int int
StackMap stack:
aload 2
iload 4
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.util.concurrent.Future
iconst_0
invokeinterface java.util.concurrent.Future.cancel:(Z)Z
pop
20: iinc 4 1
StackMap locals:
StackMap stack:
21: iload 4
iload 5
if_icmplt 19
end local 5 end local 4 22: aload 3
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljava/util/concurrent/ForkJoinPool;
0 23 1 tasks Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;
1 23 2 futures Ljava/util/ArrayList<Ljava/util/concurrent/Future<TT;>;>;
3 6 3 t Ljava/util/concurrent/Callable<TT;>;
4 6 5 f Ljava/util/concurrent/ForkJoinTask<TT;>;
8 13 3 i I
9 13 4 size I
16 23 3 t Ljava/lang/Throwable;
17 22 4 i I
18 22 5 size I
Exception table:
from to target type
1 14 15 Class java.lang.Throwable
Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;)Ljava/util/List<Ljava/util/concurrent/Future<TT;>;>;
MethodParameters:
Name Flags
tasks
public java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory getFactory();
descriptor: ()Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.factory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinPool;
public java.lang.Thread$UncaughtExceptionHandler getUncaughtExceptionHandler();
descriptor: ()Ljava/lang/Thread$UncaughtExceptionHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.ueh:Ljava/lang/Thread$UncaughtExceptionHandler;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinPool;
public int getParallelism();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
ldc 65535
iand
istore 1
start local 1 1: iload 1
ifle 2
iload 1
goto 3
StackMap locals: int
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinPool;
1 4 1 par I
public static int getCommonPoolParallelism();
descriptor: ()I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic java.util.concurrent.ForkJoinPool.COMMON_PARALLELISM:I
ireturn
LocalVariableTable:
Start End Slot Name Signature
public int getPoolSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
ldc 65535
iand
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
bipush 32
lushr
l2i
i2s
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinPool;
public boolean getAsyncMode();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
ldc 65536
iand
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ForkJoinPool;
public int getRunningThreadCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: invokestatic java.lang.invoke.VarHandle.acquireFence:()V
1: iconst_0
istore 3
start local 3 2: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 1
start local 1 3: ifnull 11
4: iconst_1
istore 4
start local 4 5: goto 10
6: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] top int int
StackMap stack:
aload 1
iload 4
aaload
dup
astore 2
start local 2 7: ifnull 9
aload 2
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.isApparentlyUnblocked:()Z
ifeq 9
8: iinc 3 1
9: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int int
StackMap stack:
iinc 4 2
end local 2 StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] top int int
StackMap stack:
10: iload 4
aload 1
arraylength
if_icmplt 6
end local 4 11: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/concurrent/ForkJoinPool;
3 12 1 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
7 10 2 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
2 12 3 rc I
5 11 4 i I
public int getActiveThreadCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
ldc 65535
iand
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
bipush 48
lshr
l2i
iadd
istore 1
start local 1 1: iload 1
ifgt 2
iconst_0
goto 3
StackMap locals: int
StackMap stack:
2: iload 1
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinPool;
1 4 1 r I
public boolean isQuiescent();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lstore 1
start local 1 1: aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
istore 3
start local 3 2: iload 3
ldc 65535
iand
istore 4
start local 4 3: iload 4
lload 1
bipush 32
lushr
l2i
i2s
iadd
istore 5
start local 5 4: iload 4
lload 1
bipush 48
lshr
l2i
iadd
istore 6
start local 6 5: iload 3
ldc -2146959360
iand
ifeq 7
6: iconst_1
ireturn
7: StackMap locals: java.util.concurrent.ForkJoinPool long int int int int
StackMap stack:
iload 6
ifle 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 7
start local 7 10: ifnull 20
11: iconst_1
istore 9
start local 9 12: goto 19
13: StackMap locals: java.util.concurrent.ForkJoinPool long int int int int java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
aload 7
iload 9
aaload
dup
astore 8
start local 8 14: ifnull 18
15: aload 8
getfield java.util.concurrent.ForkJoinPool$WorkQueue.source:I
ifle 17
16: iconst_0
ireturn
17: StackMap locals: java.util.concurrent.ForkJoinPool long int int int int java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack:
iinc 5 -1
18: StackMap locals:
StackMap stack:
iinc 9 2
end local 8 StackMap locals: java.util.concurrent.ForkJoinPool long int int int int java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
19: iload 9
aload 7
arraylength
if_icmplt 13
end local 9 20: StackMap locals: java.util.concurrent.ForkJoinPool long int int int int java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
iload 5
ifne 0
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lload 1
lcmp
ifne 0
21: iconst_1
ireturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljava/util/concurrent/ForkJoinPool;
1 22 1 c J
2 22 3 md I
3 22 4 pc I
4 22 5 tc I
5 22 6 rc I
10 22 7 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
14 19 8 v Ljava/util/concurrent/ForkJoinPool$WorkQueue;
12 20 9 i I
public long getStealCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.stealCount:J
lstore 1
start local 1 1: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
start local 3 2: ifnull 10
3: iconst_1
istore 5
start local 5 4: goto 9
5: StackMap locals: java.util.concurrent.ForkJoinPool long java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
aload 3
iload 5
aaload
dup
astore 4
start local 4 6: ifnull 8
7: lload 1
aload 4
getfield java.util.concurrent.ForkJoinPool$WorkQueue.nsteals:I
i2l
ldc 4294967295
land
ladd
lstore 1
8: StackMap locals: java.util.concurrent.ForkJoinPool long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack:
iinc 5 2
end local 4 StackMap locals: java.util.concurrent.ForkJoinPool long java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
9: iload 5
aload 3
arraylength
if_icmplt 5
end local 5 10: StackMap locals: java.util.concurrent.ForkJoinPool long java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
lload 1
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/concurrent/ForkJoinPool;
1 11 1 count J
2 11 3 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
6 9 4 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
4 10 5 i I
public long getQueuedTaskCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: invokestatic java.lang.invoke.VarHandle.acquireFence:()V
1: iconst_0
istore 3
start local 3 2: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 1
start local 1 3: ifnull 11
4: iconst_1
istore 4
start local 4 5: goto 10
6: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] top int int
StackMap stack:
aload 1
iload 4
aaload
dup
astore 2
start local 2 7: ifnull 9
8: iload 3
aload 2
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.queueSize:()I
iadd
istore 3
9: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int int
StackMap stack:
iinc 4 2
end local 2 StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] top int int
StackMap stack:
10: iload 4
aload 1
arraylength
if_icmplt 6
end local 4 11: StackMap locals:
StackMap stack:
iload 3
i2l
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/concurrent/ForkJoinPool;
3 12 1 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
7 10 2 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
2 12 3 count I
5 11 4 i I
public int getQueuedSubmissionCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: invokestatic java.lang.invoke.VarHandle.acquireFence:()V
1: iconst_0
istore 3
start local 3 2: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 1
start local 1 3: ifnull 11
4: iconst_0
istore 4
start local 4 5: goto 10
6: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] top int int
StackMap stack:
aload 1
iload 4
aaload
dup
astore 2
start local 2 7: ifnull 9
8: iload 3
aload 2
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.queueSize:()I
iadd
istore 3
9: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int int
StackMap stack:
iinc 4 2
end local 2 StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] top int int
StackMap stack:
10: iload 4
aload 1
arraylength
if_icmplt 6
end local 4 11: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/concurrent/ForkJoinPool;
3 12 1 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
7 10 2 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
2 12 3 count I
5 11 4 i I
public boolean hasQueuedSubmissions();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: invokestatic java.lang.invoke.VarHandle.acquireFence:()V
1: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 1
start local 1 2: ifnull 10
3: iconst_0
istore 3
start local 3 4: goto 9
5: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
aload 1
iload 3
aaload
dup
astore 2
start local 2 6: ifnull 8
aload 2
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.isEmpty:()Z
ifne 8
7: iconst_1
ireturn
8: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack:
iinc 3 2
end local 2 StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
9: iload 3
aload 1
arraylength
if_icmplt 5
end local 3 10: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/concurrent/ForkJoinPool;
2 11 1 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
6 9 2 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
4 10 3 i I
protected java.util.concurrent.ForkJoinTask<?> pollSubmission();
descriptor: ()Ljava/util/concurrent/ForkJoinTask;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual java.util.concurrent.ForkJoinPool.pollScan:(Z)Ljava/util/concurrent/ForkJoinTask;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinPool;
Signature: ()Ljava/util/concurrent/ForkJoinTask<*>;
protected int drainTasksTo(java.util.Collection<? super java.util.concurrent.ForkJoinTask<?>>);
descriptor: (Ljava/util/Collection;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: invokestatic java.lang.invoke.VarHandle.acquireFence:()V
1: iconst_0
istore 5
start local 5 2: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 2
start local 2 3: ifnull 15
4: iconst_0
istore 6
start local 6 5: goto 14
6: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.concurrent.ForkJoinPool$WorkQueue[] top top int int
StackMap stack:
aload 2
iload 6
aaload
dup
astore 3
start local 3 7: ifnull 13
8: goto 11
start local 4 9: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask int int
StackMap stack:
aload 1
aload 4
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
10: iinc 5 1
end local 4 11: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue top int int
StackMap stack:
aload 3
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.poll:()Ljava/util/concurrent/ForkJoinTask;
dup
astore 4
start local 4 12: ifnonnull 9
end local 4 13: StackMap locals:
StackMap stack:
iinc 6 1
end local 3 StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.concurrent.ForkJoinPool$WorkQueue[] top top int int
StackMap stack:
14: iload 6
aload 2
arraylength
if_icmplt 6
end local 6 15: StackMap locals:
StackMap stack:
iload 5
ireturn
end local 5 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/util/concurrent/ForkJoinPool;
0 16 1 c Ljava/util/Collection<-Ljava/util/concurrent/ForkJoinTask<*>;>;
3 16 2 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
7 14 3 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
9 11 4 t Ljava/util/concurrent/ForkJoinTask<*>;
12 13 4 t Ljava/util/concurrent/ForkJoinTask<*>;
2 16 5 count I
5 15 6 i I
Signature: (Ljava/util/Collection<-Ljava/util/concurrent/ForkJoinTask<*>;>;)I
MethodParameters:
Name Flags
c
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=17, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
istore 1
start local 1 1: aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lstore 2
start local 2 2: aload 0
getfield java.util.concurrent.ForkJoinPool.stealCount:J
lstore 4
start local 4 3: lconst_0
lstore 6
start local 6 4: lconst_0
lstore 8
start local 8 5: iconst_0
istore 10
start local 10 6: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 11
start local 11 7: ifnull 21
8: iconst_0
istore 13
start local 13 9: goto 20
10: StackMap locals: java.util.concurrent.ForkJoinPool int long long long long int java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
aload 11
iload 13
aaload
dup
astore 12
start local 12 11: ifnull 19
12: aload 12
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.queueSize:()I
istore 14
start local 14 13: iload 13
iconst_1
iand
ifne 15
14: lload 8
iload 14
i2l
ladd
lstore 8
goto 19
15: StackMap locals: java.util.concurrent.ForkJoinPool int long long long long int java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int int
StackMap stack:
lload 6
iload 14
i2l
ladd
lstore 6
16: lload 4
aload 12
getfield java.util.concurrent.ForkJoinPool$WorkQueue.nsteals:I
i2l
ldc 4294967295
land
ladd
lstore 4
17: aload 12
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.isApparentlyUnblocked:()Z
ifeq 19
18: iinc 10 1
end local 14 19: StackMap locals:
StackMap stack:
iinc 13 1
end local 12 StackMap locals: java.util.concurrent.ForkJoinPool int long long long long int java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
20: iload 13
aload 11
arraylength
if_icmplt 10
end local 13 21: StackMap locals: java.util.concurrent.ForkJoinPool int long long long long int java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
iload 1
ldc 65535
iand
istore 13
start local 13 22: iload 13
lload 2
bipush 32
lushr
l2i
i2s
iadd
istore 14
start local 14 23: iload 13
lload 2
bipush 48
lshr
l2i
iadd
istore 15
start local 15 24: iload 15
ifge 26
25: iconst_0
istore 15
26: StackMap locals: java.util.concurrent.ForkJoinPool int long long long long int java.util.concurrent.ForkJoinPool$WorkQueue[] top int int int
StackMap stack:
iload 1
ldc 524288
iand
ifeq 27
ldc "Terminated"
goto 30
27: StackMap locals:
StackMap stack:
iload 1
ldc -2147483648
iand
ifeq 28
ldc "Terminating"
goto 30
28: StackMap locals:
StackMap stack:
iload 1
ldc 262144
iand
ifeq 29
ldc "Shutting down"
goto 30
29: StackMap locals:
StackMap stack:
ldc "Running"
30: StackMap locals:
StackMap stack: java.lang.String
astore 16
start local 16 31: new java.lang.StringBuilder
dup
aload 0
invokespecial java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
32: ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 16
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: ldc ", parallelism = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 13
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
34: ldc ", size = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 14
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
35: ldc ", active = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 15
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
36: ldc ", running = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 10
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
37: ldc ", steals = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 4
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
38: ldc ", tasks = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 6
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
39: ldc ", submissions = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 8
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
40: ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
41: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 16 end local 15 end local 14 end local 13 end local 11 end local 10 end local 8 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Ljava/util/concurrent/ForkJoinPool;
1 42 1 md I
2 42 2 c J
3 42 4 st J
4 42 6 qt J
5 42 8 qs J
6 42 10 rc I
7 42 11 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
11 20 12 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
9 21 13 i I
13 19 14 size I
22 42 13 pc I
23 42 14 tc I
24 42 15 ac I
31 42 16 level Ljava/lang/String;
public void shutdown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: invokestatic java.util.concurrent.ForkJoinPool.checkPermission:()V
1: aload 0
iconst_0
iconst_1
invokevirtual java.util.concurrent.ForkJoinPool.tryTerminate:(ZZ)Z
pop
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ForkJoinPool;
public java.util.List<java.lang.Runnable> shutdownNow();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: invokestatic java.util.concurrent.ForkJoinPool.checkPermission:()V
1: aload 0
iconst_1
iconst_1
invokevirtual java.util.concurrent.ForkJoinPool.tryTerminate:(ZZ)Z
pop
2: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ForkJoinPool;
Signature: ()Ljava/util/List<Ljava/lang/Runnable;>;
public boolean isTerminated();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
ldc 524288
iand
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ForkJoinPool;
public boolean isTerminating();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
istore 1
start local 1 1: iload 1
ldc -2147483648
iand
ifeq 2
iload 1
ldc 524288
iand
ifne 2
iconst_1
ireturn
StackMap locals: int
StackMap stack:
2: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ForkJoinPool;
1 3 1 md I
public boolean isShutdown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.mode:I
ldc 262144
iand
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ForkJoinPool;
public boolean awaitTermination(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 3 0: invokestatic java.lang.Thread.interrupted:()Z
ifeq 2
1: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
if_acmpne 5
3: aload 0
lload 1
aload 3
invokevirtual java.util.concurrent.ForkJoinPool.awaitQuiescence:(JLjava/util/concurrent/TimeUnit;)Z
pop
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lstore 4
start local 4 6: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.isTerminated:()Z
ifeq 8
7: iconst_1
ireturn
8: StackMap locals: long
StackMap stack:
lload 4
lconst_0
lcmp
ifgt 10
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lload 4
ladd
lstore 6
start local 6 11: aload 0
dup
astore 8
monitorenter
12: StackMap locals: long java.util.concurrent.ForkJoinPool
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.isTerminated:()Z
ifeq 15
13: aload 8
monitorexit
14: iconst_1
ireturn
15: StackMap locals:
StackMap stack:
lload 4
lconst_0
lcmp
ifgt 18
16: aload 8
monitorexit
17: iconst_0
ireturn
18: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 4
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
lstore 9
start local 9 19: aload 0
lload 9
lconst_0
lcmp
ifle 20
lload 9
goto 21
StackMap locals: java.util.concurrent.ForkJoinPool long java.util.concurrent.TimeUnit long long java.util.concurrent.ForkJoinPool long
StackMap stack: java.util.concurrent.ForkJoinPool
20: lconst_1
StackMap locals: java.util.concurrent.ForkJoinPool long java.util.concurrent.TimeUnit long long java.util.concurrent.ForkJoinPool long
StackMap stack: java.util.concurrent.ForkJoinPool long
21: invokevirtual java.lang.Object.wait:(J)V
22: lload 6
invokestatic java.lang.System.nanoTime:()J
lsub
lstore 4
end local 9 23: goto 12
24: StackMap locals: java.util.concurrent.ForkJoinPool long java.util.concurrent.TimeUnit long long java.util.concurrent.ForkJoinPool
StackMap stack: java.lang.Throwable
aload 8
monitorexit
25: athrow
end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Ljava/util/concurrent/ForkJoinPool;
0 26 1 timeout J
0 26 3 unit Ljava/util/concurrent/TimeUnit;
6 26 4 nanos J
11 26 6 deadline J
19 23 9 millis J
Exception table:
from to target type
12 14 24 any
15 17 24 any
18 25 24 any
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
timeout
unit
public boolean awaitQuiescence(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 3 0: aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lstore 4
start local 4 1: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 7
start local 7 2: aload 7
instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 7
3: aload 7
checkcast java.util.concurrent.ForkJoinWorkerThread
dup
astore 6
start local 6 4: getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
aload 0
if_acmpne 7
5: aload 0
aload 6
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
invokevirtual java.util.concurrent.ForkJoinPool.helpQuiescePool:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
6: iconst_1
ireturn
end local 6 7: StackMap locals: java.util.concurrent.ForkJoinPool long java.util.concurrent.TimeUnit long top java.lang.Thread
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 8
start local 8 8: StackMap locals: long
StackMap stack:
aload 0
iconst_0
invokevirtual java.util.concurrent.ForkJoinPool.pollScan:(Z)Ljava/util/concurrent/ForkJoinTask;
dup
astore 10
start local 10 9: ifnull 11
10: aload 10
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
pop
goto 8
11: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.isQuiescent:()Z
ifeq 13
12: iconst_1
ireturn
13: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lload 8
lsub
lload 4
lcmp
ifle 15
14: iconst_0
ireturn
15: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.yield:()V
end local 10 16: goto 8
end local 8 end local 7 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljava/util/concurrent/ForkJoinPool;
0 17 1 timeout J
0 17 3 unit Ljava/util/concurrent/TimeUnit;
1 17 4 nanos J
4 7 6 wt Ljava/util/concurrent/ForkJoinWorkerThread;
2 17 7 thread Ljava/lang/Thread;
8 17 8 startTime J
9 16 10 t Ljava/util/concurrent/ForkJoinTask<*>;
MethodParameters:
Name Flags
timeout
unit
static void quiesceCommonPool();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
ldc 9223372036854775807
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.ForkJoinPool.awaitQuiescence:(JLjava/util/concurrent/TimeUnit;)Z
pop
1: return
LocalVariableTable:
Start End Slot Name Signature
public static void managedBlock(java.util.concurrent.ForkJoinPool$ManagedBlocker);
descriptor: (Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: aload 0
ifnonnull 1
new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 4
start local 4 2: aload 4
instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 25
3: aload 4
checkcast java.util.concurrent.ForkJoinWorkerThread
dup
astore 2
start local 2 4: getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
dup
astore 1
start local 1 5: ifnull 25
6: aload 2
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
start local 3 7: ifnull 25
8: goto 23
9: StackMap locals: java.util.concurrent.ForkJoinPool$ManagedBlocker java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.util.concurrent.ForkJoinPool$WorkQueue java.lang.Thread
StackMap stack:
aload 1
aload 3
invokevirtual java.util.concurrent.ForkJoinPool.tryCompensate:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)I
dup
istore 5
start local 5 10: ifeq 23
11: StackMap locals: int
StackMap stack:
aload 0
invokeinterface java.util.concurrent.ForkJoinPool$ManagedBlocker.isReleasable:()Z
ifne 19
12: aload 0
invokeinterface java.util.concurrent.ForkJoinPool$ManagedBlocker.block:()Z
ifeq 11
13: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 6
15: getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 1
iload 5
ifle 16
ldc 281474976710656
goto 17
StackMap locals: java.util.concurrent.ForkJoinPool$ManagedBlocker java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.util.concurrent.ForkJoinPool$WorkQueue java.lang.Thread int java.lang.Throwable
StackMap stack: java.lang.invoke.VarHandle java.util.concurrent.ForkJoinPool
16: lconst_0
StackMap locals: java.util.concurrent.ForkJoinPool$ManagedBlocker java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.util.concurrent.ForkJoinPool$WorkQueue java.lang.Thread int java.lang.Throwable
StackMap stack: java.lang.invoke.VarHandle java.util.concurrent.ForkJoinPool long
17: invokevirtual java.lang.invoke.VarHandle.getAndAdd:(Ljava/util/concurrent/ForkJoinPool;J)V
18: aload 6
athrow
19: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.CTL:Ljava/lang/invoke/VarHandle;
aload 1
iload 5
ifle 20
ldc 281474976710656
goto 21
StackMap locals: java.util.concurrent.ForkJoinPool$ManagedBlocker java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.util.concurrent.ForkJoinPool$WorkQueue java.lang.Thread int
StackMap stack: java.lang.invoke.VarHandle java.util.concurrent.ForkJoinPool
20: lconst_0
StackMap locals: java.util.concurrent.ForkJoinPool$ManagedBlocker java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.util.concurrent.ForkJoinPool$WorkQueue java.lang.Thread int
StackMap stack: java.lang.invoke.VarHandle java.util.concurrent.ForkJoinPool long
21: invokevirtual java.lang.invoke.VarHandle.getAndAdd:(Ljava/util/concurrent/ForkJoinPool;J)V
22: goto 27
end local 5 23: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.concurrent.ForkJoinPool$ManagedBlocker.isReleasable:()Z
ifeq 9
24: goto 27
end local 3 end local 2 end local 1 25: StackMap locals: java.util.concurrent.ForkJoinPool$ManagedBlocker top top top java.lang.Thread
StackMap stack:
aload 0
invokeinterface java.util.concurrent.ForkJoinPool$ManagedBlocker.isReleasable:()Z
ifne 27
26: aload 0
invokeinterface java.util.concurrent.ForkJoinPool$ManagedBlocker.block:()Z
ifeq 25
27: StackMap locals:
StackMap stack:
return
end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 blocker Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;
5 25 1 p Ljava/util/concurrent/ForkJoinPool;
4 25 2 wt Ljava/util/concurrent/ForkJoinWorkerThread;
7 25 3 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
2 28 4 t Ljava/lang/Thread;
10 23 5 block I
Exception table:
from to target type
11 14 14 any
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
blocker
static void helpAsyncBlocker(java.util.concurrent.Executor, java.util.concurrent.ForkJoinPool$ManagedBlocker);
descriptor: (Ljava/util/concurrent/Executor;Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: aload 0
instanceof java.util.concurrent.ForkJoinPool
ifeq 18
1: aload 0
checkcast java.util.concurrent.ForkJoinPool
astore 7
start local 7 2: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 8
start local 8 3: aload 8
instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 8
4: aload 8
checkcast java.util.concurrent.ForkJoinWorkerThread
dup
astore 3
start local 3 5: getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
aload 7
if_acmpne 8
6: aload 3
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 2
start local 2 7: goto 16
end local 3 end local 2 8: StackMap locals: java.util.concurrent.Executor java.util.concurrent.ForkJoinPool$ManagedBlocker top top top top top java.util.concurrent.ForkJoinPool java.lang.Thread
StackMap stack:
invokestatic java.util.concurrent.ThreadLocalRandom.getProbe:()I
dup
istore 5
start local 5 9: ifeq 15
10: aload 7
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 4
start local 4 11: ifnull 15
aload 4
arraylength
dup
istore 6
start local 6 12: ifle 15
13: aload 4
iload 6
iconst_1
isub
iload 5
iand
bipush 126
iand
aaload
astore 2
start local 2 14: goto 16
end local 6 end local 4 end local 2 15: StackMap locals: java.util.concurrent.Executor java.util.concurrent.ForkJoinPool$ManagedBlocker top top top int top java.util.concurrent.ForkJoinPool java.lang.Thread
StackMap stack:
aconst_null
astore 2
end local 5 start local 2 16: StackMap locals: java.util.concurrent.Executor java.util.concurrent.ForkJoinPool$ManagedBlocker java.util.concurrent.ForkJoinPool$WorkQueue top top top top java.util.concurrent.ForkJoinPool java.lang.Thread
StackMap stack:
aload 2
ifnull 18
17: aload 2
aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.helpAsyncBlocker:(Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V
end local 8 end local 7 end local 2 18: StackMap locals: java.util.concurrent.Executor java.util.concurrent.ForkJoinPool$ManagedBlocker
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 e Ljava/util/concurrent/Executor;
0 19 1 blocker Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;
7 8 2 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
14 15 2 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
16 18 2 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
5 8 3 wt Ljava/util/concurrent/ForkJoinWorkerThread;
11 15 4 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
9 16 5 r I
12 15 6 n I
2 18 7 p Ljava/util/concurrent/ForkJoinPool;
3 18 8 thread Ljava/lang/Thread;
MethodParameters:
Name Flags
e
blocker
protected <T> java.util.concurrent.RunnableFuture<T> newTaskFor(java.lang.Runnable, T);
descriptor: (Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/RunnableFuture;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.util.concurrent.ForkJoinTask$AdaptedRunnable
dup
aload 1
aload 2
invokespecial java.util.concurrent.ForkJoinTask$AdaptedRunnable.<init>:(Ljava/lang/Runnable;Ljava/lang/Object;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinPool;
0 1 1 runnable Ljava/lang/Runnable;
0 1 2 value TT;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Runnable;TT;)Ljava/util/concurrent/RunnableFuture<TT;>;
MethodParameters:
Name Flags
runnable
value
protected <T> java.util.concurrent.RunnableFuture<T> newTaskFor(java.util.concurrent.Callable<T>);
descriptor: (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/RunnableFuture;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.util.concurrent.ForkJoinTask$AdaptedCallable
dup
aload 1
invokespecial java.util.concurrent.ForkJoinTask$AdaptedCallable.<init>:(Ljava/util/concurrent/Callable;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinPool;
0 1 1 callable Ljava/util/concurrent/Callable<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TT;>;)Ljava/util/concurrent/RunnableFuture<TT;>;
MethodParameters:
Name Flags
callable
public java.util.concurrent.Future submit(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinPool.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/ForkJoinTask;
areturn
LocalVariableTable:
Start End Slot Name Signature
public java.util.concurrent.Future submit(java.lang.Runnable, java.lang.Object);
descriptor: (Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Future;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast java.lang.Object
invokevirtual java.util.concurrent.ForkJoinPool.submit:(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/ForkJoinTask;
areturn
LocalVariableTable:
Start End Slot Name Signature
public java.util.concurrent.Future submit(java.util.concurrent.Callable);
descriptor: (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast java.util.concurrent.Callable
invokevirtual java.util.concurrent.ForkJoinPool.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/ForkJoinTask;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "ForkJoinPool.java"
NestMembers:
java.util.concurrent.ForkJoinPool$1 java.util.concurrent.ForkJoinPool$DefaultForkJoinWorkerThreadFactory java.util.concurrent.ForkJoinPool$DefaultForkJoinWorkerThreadFactory$1 java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.util.concurrent.ForkJoinPool$InnocuousForkJoinWorkerThreadFactory java.util.concurrent.ForkJoinPool$InnocuousForkJoinWorkerThreadFactory$1 java.util.concurrent.ForkJoinPool$ManagedBlocker java.util.concurrent.ForkJoinPool$WorkQueue
InnerClasses:
public final State = java.lang.Thread$State of java.lang.Thread
public abstract UncaughtExceptionHandler = java.lang.Thread$UncaughtExceptionHandler of java.lang.Thread
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
java.util.concurrent.ForkJoinPool$1
private final DefaultForkJoinWorkerThreadFactory = java.util.concurrent.ForkJoinPool$DefaultForkJoinWorkerThreadFactory of java.util.concurrent.ForkJoinPool
public abstract ForkJoinWorkerThreadFactory = java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory of java.util.concurrent.ForkJoinPool
private final InnocuousForkJoinWorkerThreadFactory = java.util.concurrent.ForkJoinPool$InnocuousForkJoinWorkerThreadFactory of java.util.concurrent.ForkJoinPool
public abstract ManagedBlocker = java.util.concurrent.ForkJoinPool$ManagedBlocker of java.util.concurrent.ForkJoinPool
final WorkQueue = java.util.concurrent.ForkJoinPool$WorkQueue of java.util.concurrent.ForkJoinPool
final AdaptedCallable = java.util.concurrent.ForkJoinTask$AdaptedCallable of java.util.concurrent.ForkJoinTask
final AdaptedRunnable = java.util.concurrent.ForkJoinTask$AdaptedRunnable of java.util.concurrent.ForkJoinTask
final AdaptedRunnableAction = java.util.concurrent.ForkJoinTask$AdaptedRunnableAction of java.util.concurrent.ForkJoinTask
final RunnableExecuteAction = java.util.concurrent.ForkJoinTask$RunnableExecuteAction of java.util.concurrent.ForkJoinTask