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 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 EVENMASK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65534
static final int SQMASK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 126
static final int SCANNING;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int INACTIVE;
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 MODE_MASK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -65536
static final int LIFO_QUEUE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int FIFO_QUEUE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65536
static final int SHARED_QUEUE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -2147483648
public static final java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory defaultForkJoinWorkerThreadFactory;
descriptor: Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final java.lang.RuntimePermission modifyThreadPermission;
descriptor: Ljava/lang/RuntimePermission;
flags: (0x001a) ACC_PRIVATE, 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 commonParallelism;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static int commonMaxSpares;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static int poolNumberSequence;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final long IDLE_TIMEOUT;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2000000000
private static final long TIMEOUT_SLOP;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20000000
private static final int DEFAULT_COMMON_MAX_SPARES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 256
private static final int SPINS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
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 AC_SHIFT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 48
private static final long AC_UNIT;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 281474976710656
private static final long AC_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
private static final int RSLOCK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int RSIGNAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int STARTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int STOP;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 536870912
private static final int TERMINATED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1073741824
private static final int SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -2147483648
volatile long ctl;
descriptor: J
flags: (0x0040) ACC_VOLATILE
volatile int runState;
descriptor: I
flags: (0x0040) ACC_VOLATILE
final int config;
descriptor: I
flags: (0x0010) ACC_FINAL
int indexSeed;
descriptor: I
flags: (0x0000)
volatile java.util.concurrent.ForkJoinPool$WorkQueue[] workQueues;
descriptor: [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
flags: (0x0040) ACC_VOLATILE
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.lang.String workerNamePrefix;
descriptor: Ljava/lang/String;
flags: (0x0010) ACC_FINAL
volatile java.util.concurrent.atomic.AtomicLong stealCounter;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0040) ACC_VOLATILE
private static final sun.misc.Unsafe U;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int ABASE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int ASHIFT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long CTL;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long RUNSTATE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long STEALCOUNTER;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long PARKBLOCKER;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long QTOP;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long QLOCK;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long QSCANSTATE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long QPARKER;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long QCURRENTSTEAL;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long QCURRENTJOIN;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=5, args_size=0
0: invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
putstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
1: ldc Ljava/util/concurrent/ForkJoinPool;
astore 0
start local 0 2: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
3: aload 0
ldc "ctl"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
4: invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic java.util.concurrent.ForkJoinPool.CTL:J
5: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
6: aload 0
ldc "runState"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
7: invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic java.util.concurrent.ForkJoinPool.RUNSTATE:J
8: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
9: aload 0
ldc "stealCounter"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
10: invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic java.util.concurrent.ForkJoinPool.STEALCOUNTER:J
11: ldc Ljava/lang/Thread;
astore 1
start local 1 12: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
13: aload 1
ldc "parkBlocker"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
14: invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic java.util.concurrent.ForkJoinPool.PARKBLOCKER:J
15: ldc Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 2
start local 2 16: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
17: aload 2
ldc "top"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
18: invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic java.util.concurrent.ForkJoinPool.QTOP:J
19: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
20: aload 2
ldc "qlock"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
21: invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic java.util.concurrent.ForkJoinPool.QLOCK:J
22: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
23: aload 2
ldc "scanState"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
24: invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic java.util.concurrent.ForkJoinPool.QSCANSTATE:J
25: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
26: aload 2
ldc "parker"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
27: invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic java.util.concurrent.ForkJoinPool.QPARKER:J
28: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
29: aload 2
ldc "currentSteal"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
30: invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic java.util.concurrent.ForkJoinPool.QCURRENTSTEAL:J
31: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
32: aload 2
ldc "currentJoin"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
33: invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic java.util.concurrent.ForkJoinPool.QCURRENTJOIN:J
34: ldc [Ljava/util/concurrent/ForkJoinTask;
astore 3
start local 3 35: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 3
invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
putstatic java.util.concurrent.ForkJoinPool.ABASE:I
36: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 3
invokevirtual sun.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
istore 4
start local 4 37: iload 4
iload 4
iconst_1
isub
iand
ifeq 39
38: new java.lang.Error
dup
ldc "data type scale not a power of two"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
39: StackMap locals: java.lang.Class java.lang.Class java.lang.Class java.lang.Class int
StackMap stack:
bipush 31
iload 4
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
isub
putstatic java.util.concurrent.ForkJoinPool.ASHIFT:I
end local 4 end local 3 end local 2 end local 1 end local 0 40: goto 43
StackMap locals:
StackMap stack: java.lang.Exception
41: astore 0
start local 0 42: new java.lang.Error
dup
aload 0
invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 43: StackMap locals:
StackMap stack:
sipush 256
putstatic java.util.concurrent.ForkJoinPool.commonMaxSpares:I
44: new java.util.concurrent.ForkJoinPool$DefaultForkJoinWorkerThreadFactory
dup
invokespecial java.util.concurrent.ForkJoinPool$DefaultForkJoinWorkerThreadFactory.<init>:()V
45: putstatic java.util.concurrent.ForkJoinPool.defaultForkJoinWorkerThreadFactory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
46: 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;
47: new java.util.concurrent.ForkJoinPool$1
dup
invokespecial java.util.concurrent.ForkJoinPool$1.<init>:()V
48: 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;
49: getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
getfield java.util.concurrent.ForkJoinPool.config:I
ldc 65535
iand
istore 0
start local 0 50: iload 0
ifle 51
iload 0
goto 52
StackMap locals: int
StackMap stack:
51: iconst_1
StackMap locals:
StackMap stack: int
52: putstatic java.util.concurrent.ForkJoinPool.commonParallelism:I
end local 0 53: return
LocalVariableTable:
Start End Slot Name Signature
2 40 0 k Ljava/lang/Class<*>;
12 40 1 tk Ljava/lang/Class<*>;
16 40 2 wk Ljava/lang/Class<*>;
35 40 3 ak Ljava/lang/Class<*>;
37 40 4 scale I
42 43 0 e Ljava/lang/Exception;
50 53 0 par I
Exception table:
from to target type
0 40 41 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;
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 int lockRunState();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.runState:I
dup
istore 1
start local 1 1: iconst_1
iand
ifne 3
2: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.RUNSTATE:J
iload 1
iload 1
iconst_1
ior
dup
istore 1
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
ifne 4
3: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.awaitRunStateLock:()I
goto 5
StackMap locals:
StackMap stack:
4: iload 1
5: StackMap locals:
StackMap stack: int
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/concurrent/ForkJoinPool;
1 6 1 rs I
private int awaitRunStateLock();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=1
start local 0 0: iconst_0
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: StackMap locals: java.util.concurrent.ForkJoinPool top int int int
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.runState:I
dup
istore 5
start local 5 4: iconst_1
iand
ifne 12
5: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.RUNSTATE:J
iload 5
iload 5
iconst_1
ior
dup
istore 6
start local 6 6: invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
ifeq 3
7: iload 2
ifeq 11
8: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
9: goto 11
StackMap locals: java.util.concurrent.ForkJoinPool top int int int int int
StackMap stack: java.lang.SecurityException
10: pop
11: StackMap locals:
StackMap stack:
iload 6
ireturn
end local 6 12: StackMap locals:
StackMap stack:
iload 4
ifne 14
13: invokestatic java.util.concurrent.ThreadLocalRandom.nextSecondarySeed:()I
istore 4
goto 3
14: StackMap locals:
StackMap stack:
iload 3
ifle 19
15: iload 4
iload 4
bipush 6
ishl
ixor
istore 4
iload 4
iload 4
bipush 21
iushr
ixor
istore 4
iload 4
iload 4
bipush 7
ishl
ixor
istore 4
16: iload 4
iflt 3
17: iinc 3 -1
18: goto 3
19: StackMap locals:
StackMap stack:
iload 5
iconst_4
iand
ifeq 21
aload 0
getfield java.util.concurrent.ForkJoinPool.stealCounter:Ljava/util/concurrent/atomic/AtomicLong;
dup
astore 1
start local 1 20: ifnonnull 22
end local 1 21: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.yield:()V
goto 3
start local 1 22: StackMap locals: java.util.concurrent.ForkJoinPool java.lang.Object int int int int
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.RUNSTATE:J
iload 5
iload 5
iconst_2
ior
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
ifeq 3
23: aload 1
dup
astore 7
monitorenter
24: aload 0
getfield java.util.concurrent.ForkJoinPool.runState:I
iconst_2
iand
ifeq 32
25: aload 1
invokevirtual java.lang.Object.wait:()V
26: goto 33
StackMap locals: java.util.concurrent.ForkJoinPool java.lang.Object int int int int top java.lang.Object
StackMap stack: java.lang.InterruptedException
27: pop
28: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
instanceof java.util.concurrent.ForkJoinWorkerThread
29: ifne 33
30: iconst_1
istore 2
31: goto 33
32: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Object.notifyAll:()V
33: StackMap locals:
StackMap stack:
aload 7
monitorexit
34: goto 3
StackMap locals:
StackMap stack: java.lang.Throwable
35: aload 7
monitorexit
36: athrow
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 37 0 this Ljava/util/concurrent/ForkJoinPool;
20 21 1 lock Ljava/lang/Object;
22 37 1 lock Ljava/lang/Object;
1 37 2 wasInterrupted Z
2 37 3 spins I
3 37 4 r I
4 37 5 rs I
6 12 6 ns I
Exception table:
from to target type
8 9 10 Class java.lang.SecurityException
25 26 27 Class java.lang.InterruptedException
24 34 35 any
35 36 35 any
private void unlockRunState(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.RUNSTATE:J
iload 1
iload 2
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
ifne 9
1: aload 0
getfield java.util.concurrent.ForkJoinPool.stealCounter:Ljava/util/concurrent/atomic/AtomicLong;
astore 3
start local 3 2: aload 0
iload 2
putfield java.util.concurrent.ForkJoinPool.runState:I
3: aload 3
ifnull 9
4: aload 3
dup
astore 4
monitorenter
5: aload 3
invokevirtual java.lang.Object.notifyAll:()V
aload 4
monitorexit
6: goto 9
StackMap locals: java.util.concurrent.ForkJoinPool int int java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
7: aload 4
monitorexit
8: athrow
end local 3 9: StackMap locals:
StackMap stack:
return
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 oldRunState I
0 10 2 newRunState I
2 9 3 lock Ljava/lang/Object;
Exception table:
from to target type
5 6 7 any
7 8 7 any
MethodParameters:
Name Flags
oldRunState
newRunState
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=8, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: StackMap locals: int
StackMap stack:
ldc -281474976710656
lload 1
ldc 281474976710656
ladd
land
2: ldc 281470681743360
lload 1
ldc 4294967296
ladd
land
3: lor
lstore 4
start local 4 4: aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lload 1
lcmp
ifne 15
5: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.lockRunState:()I
dup
istore 6
start local 6 6: ldc 536870912
iand
dup
istore 7
start local 7 7: ifne 9
8: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
lload 1
lload 4
invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
istore 3
9: StackMap locals: long int int
StackMap stack:
aload 0
iload 6
iload 6
bipush -2
iand
invokevirtual java.util.concurrent.ForkJoinPool.unlockRunState:(II)V
10: iload 7
ifeq 12
11: goto 16
12: StackMap locals:
StackMap stack:
iload 3
ifeq 15
13: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.createWorker:()Z
pop
14: goto 16
end local 7 end local 6 end local 4 15: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 1
ldc 140737488355328
land
lconst_0
lcmp
ifeq 16
lload 1
l2i
ifeq 1
16: StackMap locals:
StackMap stack:
return
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 c J
1 17 3 add Z
4 15 4 nc J
6 15 6 rs I
7 15 7 stop I
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=14, 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:
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 3
start local 3 5: iconst_0
istore 4
start local 4 6: aload 0
getfield java.util.concurrent.ForkJoinPool.config:I
ldc -65536
iand
istore 5
start local 5 7: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.lockRunState:()I
istore 6
start local 6 8: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 7
start local 7 9: ifnull 33
aload 7
arraylength
dup
istore 8
start local 8 10: ifle 33
11: aload 0
dup
getfield java.util.concurrent.ForkJoinPool.indexSeed:I
ldc -1640531527
iadd
dup_x1
putfield java.util.concurrent.ForkJoinPool.indexSeed:I
istore 9
start local 9 12: iload 8
iconst_1
isub
istore 10
start local 10 13: iload 9
iconst_1
ishl
iconst_1
ior
iload 10
iand
istore 4
14: aload 7
iload 4
aaload
ifnull 25
15: iconst_0
istore 11
start local 11 16: iload 8
iconst_4
if_icmpgt 17
iconst_2
goto 18
StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.lang.Thread$UncaughtExceptionHandler java.util.concurrent.ForkJoinPool$WorkQueue int int int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int
StackMap stack:
17: iload 8
iconst_1
iushr
ldc 65534
iand
iconst_2
iadd
StackMap locals:
StackMap stack: int
18: istore 12
start local 12 19: goto 24
20: StackMap locals: int
StackMap stack:
iinc 11 1
iload 11
iload 8
if_icmplt 24
21: aload 0
aload 7
iload 8
iconst_1
ishl
dup
istore 8
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.util.concurrent.ForkJoinPool$WorkQueue[]
dup
astore 7
putfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
22: iload 8
iconst_1
isub
istore 10
23: iconst_0
istore 11
24: StackMap locals:
StackMap stack:
aload 7
iload 4
iload 12
iadd
iload 10
iand
dup
istore 4
aaload
ifnonnull 20
end local 12 end local 11 25: StackMap locals:
StackMap stack:
aload 3
iload 9
putfield java.util.concurrent.ForkJoinPool$WorkQueue.hint:I
26: aload 3
iload 4
iload 5
ior
putfield java.util.concurrent.ForkJoinPool$WorkQueue.config:I
27: aload 3
iload 4
putfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
28: aload 7
iload 4
aload 3
aastore
end local 10 end local 9 end local 8 end local 7 29: goto 33
StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.lang.Thread$UncaughtExceptionHandler java.util.concurrent.ForkJoinPool$WorkQueue int int int
StackMap stack: java.lang.Throwable
30: astore 13
31: aload 0
iload 6
iload 6
bipush -2
iand
invokevirtual java.util.concurrent.ForkJoinPool.unlockRunState:(II)V
32: aload 13
athrow
33: StackMap locals:
StackMap stack:
aload 0
iload 6
iload 6
bipush -2
iand
invokevirtual java.util.concurrent.ForkJoinPool.unlockRunState:(II)V
34: aload 1
aload 0
getfield java.util.concurrent.ForkJoinPool.workerNamePrefix:Ljava/lang/String;
iload 4
iconst_1
iushr
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
35: aload 3
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 36 0 this Ljava/util/concurrent/ForkJoinPool;
0 36 1 wt Ljava/util/concurrent/ForkJoinWorkerThread;
2 36 2 handler Ljava/lang/Thread$UncaughtExceptionHandler;
5 36 3 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
6 36 4 i I
7 36 5 mode I
8 36 6 rs I
9 29 7 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
10 29 8 n I
12 29 9 s I
13 29 10 m I
16 25 11 probes I
19 25 12 step I
Exception table:
from to target type
8 30 30 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=14, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 1
ifnull 8
aload 1
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
ifnull 8
2: aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.config:I
ldc 65535
iand
istore 5
start local 5 3: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.lockRunState:()I
istore 6
start local 6 4: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 4
start local 4 5: ifnull 7
aload 4
arraylength
iload 5
if_icmple 7
aload 4
iload 5
aaload
aload 3
if_acmpne 7
6: aload 4
iload 5
aconst_null
aastore
7: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.lang.Throwable java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinPool$WorkQueue[] int int
StackMap stack:
aload 0
iload 6
iload 6
bipush -2
iand
invokevirtual java.util.concurrent.ForkJoinPool.unlockRunState:(II)V
end local 6 end local 5 end local 4 8: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
9: aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 4
start local 4 10: ldc -281474976710656
lload 4
ldc 281474976710656
lsub
land
11: ldc 281470681743360
lload 4
ldc 4294967296
lsub
land
lor
12: ldc 4294967295
lload 4
land
lor
13: invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
14: ifeq 8
15: aload 3
ifnull 19
16: aload 3
iconst_m1
putfield java.util.concurrent.ForkJoinPool$WorkQueue.qlock:I
17: aload 3
aload 0
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.transferStealCount:(Ljava/util/concurrent/ForkJoinPool;)V
18: aload 3
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.cancelAll:()V
19: StackMap locals: long
StackMap stack:
aload 0
iconst_0
iconst_0
invokevirtual java.util.concurrent.ForkJoinPool.tryTerminate:(ZZ)Z
ifne 31
aload 3
ifnull 31
aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
ifnull 31
20: aload 0
getfield java.util.concurrent.ForkJoinPool.runState:I
ldc 536870912
iand
ifne 31
aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 6
start local 6 21: ifnull 31
22: aload 6
arraylength
iconst_1
isub
dup
istore 7
start local 7 23: ifge 25
end local 7 end local 6 24: goto 31
start local 6 start local 7 25: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue[] int
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 4
l2i
dup
istore 8
start local 8 26: ifeq 29
27: aload 0
lload 4
aload 6
iload 8
iload 7
iand
aaload
ldc 281474976710656
invokevirtual java.util.concurrent.ForkJoinPool.tryRelease:(JLjava/util/concurrent/ForkJoinPool$WorkQueue;J)Z
ifeq 19
28: goto 31
29: StackMap locals: int
StackMap stack:
aload 2
ifnull 31
lload 4
ldc 140737488355328
land
lconst_0
lcmp
ifeq 31
30: aload 0
lload 4
invokevirtual java.util.concurrent.ForkJoinPool.tryAddWorker:(J)V
end local 8 end local 7 end local 6 31: StackMap locals:
StackMap stack:
aload 2
ifnonnull 33
32: invokestatic java.util.concurrent.ForkJoinTask.helpExpungeStaleExceptions:()V
goto 34
33: StackMap locals:
StackMap stack:
aload 2
invokestatic java.util.concurrent.ForkJoinTask.rethrow:(Ljava/lang/Throwable;)V
34: 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 35 0 this Ljava/util/concurrent/ForkJoinPool;
0 35 1 wt Ljava/util/concurrent/ForkJoinWorkerThread;
0 35 2 ex Ljava/lang/Throwable;
1 35 3 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
5 8 4 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
3 8 5 idx I
4 8 6 rs I
10 35 4 c J
21 24 6 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
25 31 6 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
23 24 7 m I
25 31 7 m I
26 31 8 sp I
MethodParameters:
Name Flags
wt
ex
final void signalWork(java.util.concurrent.ForkJoinPool$WorkQueue[], java.util.concurrent.ForkJoinPool$WorkQueue);
descriptor: ([Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
flags: (0x0010) ACC_FINAL
Code:
stack=8, locals=13, args_size=3
start local 0 start local 1 start local 2 0: goto 25
start local 3 1: StackMap locals: long
StackMap stack:
lload 3
l2i
dup
istore 5
start local 5 2: ifne 6
3: lload 3
ldc 140737488355328
land
lconst_0
lcmp
ifeq 27
4: aload 0
lload 3
invokevirtual java.util.concurrent.ForkJoinPool.tryAddWorker:(J)V
5: goto 27
6: StackMap locals: int
StackMap stack:
aload 1
ifnonnull 8
7: goto 27
8: StackMap locals:
StackMap stack:
aload 1
arraylength
iload 5
ldc 65535
iand
dup
istore 6
start local 6 9: if_icmpgt 11
10: goto 27
11: StackMap locals: int
StackMap stack:
aload 1
iload 6
aaload
dup
astore 7
start local 7 12: ifnonnull 14
13: goto 27
14: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
iload 5
ldc 65536
iadd
ldc 2147483647
iand
istore 9
start local 9 15: iload 5
aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
isub
istore 10
start local 10 16: ldc -4294967296
lload 3
ldc 281474976710656
ladd
land
ldc 4294967295
aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.stackPred:I
i2l
land
lor
lstore 11
start local 11 17: iload 10
ifne 23
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
lload 3
lload 11
invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
ifeq 23
18: aload 7
iload 9
putfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
19: aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.parker:Ljava/lang/Thread;
dup
astore 8
start local 8 20: ifnull 27
21: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 8
invokevirtual sun.misc.Unsafe.unpark:(Ljava/lang/Object;)V
22: goto 27
end local 8 23: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue long int int java.util.concurrent.ForkJoinPool$WorkQueue top int int long
StackMap stack:
aload 2
ifnull 25
aload 2
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
aload 2
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
if_icmpne 25
24: goto 27
end local 11 end local 10 end local 9 end local 7 end local 6 end local 5 end local 3 25: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 3
start local 3 26: lconst_0
lcmp
iflt 1
27: StackMap locals: long
StackMap stack:
return
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 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
0 28 2 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
1 25 3 c J
26 28 3 c J
2 25 5 sp I
9 25 6 i I
12 25 7 v Ljava/util/concurrent/ForkJoinPool$WorkQueue;
20 23 8 p Ljava/lang/Thread;
15 25 9 vs I
16 25 10 d I
17 25 11 nc J
MethodParameters:
Name Flags
ws
q
private boolean tryRelease(long, java.util.concurrent.ForkJoinPool$WorkQueue, long);
descriptor: (JLjava/util/concurrent/ForkJoinPool$WorkQueue;J)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=11, args_size=4
start local 0 start local 1 start local 3 start local 4 0: lload 1
l2i
istore 6
start local 6 1: iload 6
ldc 65536
iadd
ldc 2147483647
iand
istore 7
start local 7 2: aload 3
ifnull 10
aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
iload 6
if_icmpne 10
3: ldc -4294967296
lload 1
lload 4
ladd
land
ldc 4294967295
aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.stackPred:I
i2l
land
lor
lstore 9
start local 9 4: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
lload 1
lload 9
invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
ifeq 10
5: aload 3
iload 7
putfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
6: aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.parker:Ljava/lang/Thread;
dup
astore 8
start local 8 7: ifnull 9
8: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 8
invokevirtual sun.misc.Unsafe.unpark:(Ljava/lang/Object;)V
9: StackMap locals: java.util.concurrent.ForkJoinPool long java.util.concurrent.ForkJoinPool$WorkQueue long int int java.lang.Thread long
StackMap stack:
iconst_1
ireturn
end local 9 end local 8 10: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 7 end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/concurrent/ForkJoinPool;
0 11 1 c J
0 11 3 v Ljava/util/concurrent/ForkJoinPool$WorkQueue;
0 11 4 inc J
1 11 6 sp I
2 11 7 vs I
7 10 8 p Ljava/lang/Thread;
4 10 9 nc J
MethodParameters:
Name Flags
c
v
inc
final void runWorker(java.util.concurrent.ForkJoinPool$WorkQueue);
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.growArray:()[Ljava/util/concurrent/ForkJoinTask;
pop
1: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.hint:I
istore 2
start local 2 2: iload 2
ifne 3
iconst_1
goto 4
StackMap locals: int
StackMap stack:
3: iload 2
StackMap locals:
StackMap stack: int
4: istore 3
start local 3 5: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 3
invokevirtual java.util.concurrent.ForkJoinPool.scan:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)Ljava/util/concurrent/ForkJoinTask;
dup
astore 4
start local 4 6: ifnull 8
7: aload 1
aload 4
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.runTask:(Ljava/util/concurrent/ForkJoinTask;)V
goto 10
8: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
aload 0
aload 1
iload 3
invokevirtual java.util.concurrent.ForkJoinPool.awaitWork:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)Z
ifne 10
9: goto 12
10: StackMap locals:
StackMap stack:
iload 3
iload 3
bipush 13
ishl
ixor
istore 3
iload 3
iload 3
bipush 17
iushr
ixor
istore 3
iload 3
iload 3
iconst_5
ishl
ixor
istore 3
end local 4 11: goto 5
12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljava/util/concurrent/ForkJoinPool;
0 13 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
2 13 2 seed I
5 13 3 r I
6 11 4 t Ljava/util/concurrent/ForkJoinTask<*>;
MethodParameters:
Name Flags
w
private java.util.concurrent.ForkJoinTask<?> scan(java.util.concurrent.ForkJoinPool$WorkQueue, int);
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=20, 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 54
aload 3
arraylength
iconst_1
isub
dup
istore 4
start local 4 2: ifle 54
aload 1
ifnull 54
3: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
istore 5
start local 5 4: iload 2
iload 4
iand
istore 6
start local 6 5: iload 6
istore 7
start local 7 6: iconst_0
istore 8
start local 8 7: iconst_0
istore 9
start local 9 8: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int int int
StackMap stack:
aload 3
iload 7
aaload
dup
astore 10
start local 10 9: ifnull 37
10: aload 10
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
dup
istore 13
start local 13 11: aload 10
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
isub
dup
istore 14
start local 14 12: ifge 36
13: aload 10
getfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
dup
astore 11
start local 11 14: ifnull 36
15: aload 11
arraylength
iconst_1
isub
iload 13
iand
getstatic java.util.concurrent.ForkJoinPool.ASHIFT:I
ishl
getstatic java.util.concurrent.ForkJoinPool.ABASE:I
iadd
i2l
lstore 17
start local 17 16: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 11
lload 17
invokevirtual sun.misc.Unsafe.getObjectVolatile:(Ljava/lang/Object;J)Ljava/lang/Object;
17: checkcast java.util.concurrent.ForkJoinTask
dup
astore 12
start local 12 18: ifnull 30
19: aload 10
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
iload 13
if_icmpne 30
20: iload 5
iflt 26
21: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 11
lload 17
aload 12
aconst_null
invokevirtual sun.misc.Unsafe.compareAndSwapObject:(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
ifeq 30
22: aload 10
iload 13
iconst_1
iadd
putfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
23: iload 14
iconst_m1
if_icmpge 25
24: aload 0
aload 3
aload 10
invokevirtual java.util.concurrent.ForkJoinPool.signalWork:([Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
25: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int int int java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask[] java.util.concurrent.ForkJoinTask int int top top long
StackMap stack:
aload 12
areturn
26: StackMap locals:
StackMap stack:
iload 8
ifne 30
27: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
ifge 30
28: aload 0
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 15
start local 15 29: aload 3
iload 4
lload 15
l2i
iand
aaload
ldc 281474976710656
invokevirtual java.util.concurrent.ForkJoinPool.tryRelease:(JLjava/util/concurrent/ForkJoinPool$WorkQueue;J)Z
pop
end local 15 30: StackMap locals:
StackMap stack:
iload 5
ifge 32
31: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
istore 5
32: StackMap locals:
StackMap stack:
iload 2
iload 2
iconst_1
ishl
ixor
istore 2
iload 2
iload 2
iconst_3
iushr
ixor
istore 2
iload 2
iload 2
bipush 10
ishl
ixor
istore 2
33: iload 2
iload 4
iand
dup
istore 7
istore 6
34: iconst_0
dup
istore 9
istore 8
35: goto 8
end local 17 end local 12 end local 11 36: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int int int java.util.concurrent.ForkJoinPool$WorkQueue top top int int
StackMap stack:
iload 9
iload 13
iadd
istore 9
end local 14 end local 13 37: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int int int java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
iload 7
iconst_1
iadd
iload 4
iand
dup
istore 7
iload 6
if_icmpne 8
38: iload 5
ifge 39
iload 5
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
dup
istore 5
if_icmpne 52
39: StackMap locals:
StackMap stack:
iload 8
iload 9
dup
istore 8
if_icmpne 52
40: iload 5
iflt 54
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.qlock:I
ifge 42
41: goto 54
42: StackMap locals:
StackMap stack:
iload 5
ldc -2147483648
ior
istore 17
start local 17 43: ldc 4294967295
iload 17
i2l
land
44: ldc -4294967296
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 15
start local 15 45: ldc 281474976710656
lsub
land
46: lor
lstore 18
start local 18 47: aload 1
lload 15
l2i
putfield java.util.concurrent.ForkJoinPool$WorkQueue.stackPred:I
48: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 1
getstatic java.util.concurrent.ForkJoinPool.QSCANSTATE:J
iload 17
invokevirtual sun.misc.Unsafe.putInt:(Ljava/lang/Object;JI)V
49: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
lload 15
lload 18
invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
ifeq 51
50: iload 17
istore 5
goto 52
51: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int int int java.util.concurrent.ForkJoinPool$WorkQueue top top top top long int long
StackMap stack:
aload 1
iload 5
putfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
end local 18 end local 17 end local 15 52: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int int int java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
iconst_0
istore 9
end local 10 53: goto 8
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 54: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Ljava/util/concurrent/ForkJoinPool;
0 55 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
0 55 2 r I
1 55 3 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
2 54 4 m I
4 54 5 ss I
5 54 6 origin I
6 54 7 k I
7 54 8 oldSum I
8 54 9 checkSum I
9 53 10 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
14 36 11 a [Ljava/util/concurrent/ForkJoinTask;
18 36 12 t Ljava/util/concurrent/ForkJoinTask<*>;
11 37 13 b I
12 37 14 n I
29 30 15 c J
45 52 15 c J
16 36 17 i J
43 52 17 ns I
47 52 18 nc J
Signature: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)Ljava/util/concurrent/ForkJoinTask<*>;
MethodParameters:
Name Flags
w
r
private boolean awaitWork(java.util.concurrent.ForkJoinPool$WorkQueue, int);
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 1
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.qlock:I
ifge 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.stackPred:I
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: StackMap locals: int int
StackMap stack:
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
dup
istore 5
start local 5 5: iflt 7
6: goto 53
7: StackMap locals: int
StackMap stack:
iload 4
ifle 19
8: iload 2
iload 2
bipush 6
ishl
ixor
istore 2
iload 2
iload 2
bipush 21
iushr
ixor
istore 2
iload 2
iload 2
bipush 7
ishl
ixor
istore 2
9: iload 2
iflt 4
iinc 4 -1
iload 4
ifne 4
10: iload 3
ifeq 4
aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 7
start local 7 11: ifnull 4
12: iload 3
ldc 65535
iand
dup
istore 8
start local 8 13: aload 7
arraylength
if_icmpge 4
14: aload 7
iload 8
aaload
dup
astore 6
start local 6 15: ifnull 4
16: aload 6
getfield java.util.concurrent.ForkJoinPool$WorkQueue.parker:Ljava/lang/Thread;
ifnull 17
aload 6
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
iflt 4
17: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinPool$WorkQueue[] int
StackMap stack:
iconst_0
istore 4
end local 8 end local 7 end local 6 18: goto 4
19: StackMap locals:
StackMap stack:
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.qlock:I
ifge 21
20: iconst_0
ireturn
21: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.interrupted:()Z
ifne 4
22: aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 6
start local 6 23: bipush 48
lshr
l2i
aload 0
getfield java.util.concurrent.ForkJoinPool.config:I
ldc 65535
iand
iadd
istore 14
start local 14 24: iload 14
ifgt 25
aload 0
iconst_0
iconst_0
invokevirtual java.util.concurrent.ForkJoinPool.tryTerminate:(ZZ)Z
ifne 26
25: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int int long top top top top top top int
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.runState:I
ldc 536870912
iand
ifeq 27
26: StackMap locals:
StackMap stack:
iconst_0
ireturn
27: StackMap locals:
StackMap stack:
iload 14
ifgt 37
iload 5
lload 6
l2i
if_icmpne 37
28: ldc -4294967296
lload 6
ldc 281474976710656
ladd
land
ldc 4294967295
iload 3
i2l
land
lor
lstore 8
start local 8 29: lload 6
bipush 32
lushr
l2i
i2s
istore 15
start local 15 30: iload 15
iconst_2
if_icmple 32
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
lload 6
lload 8
invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
ifeq 32
31: iconst_0
ireturn
32: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int int long long top top top top int int
StackMap stack:
ldc 2000000000
iload 15
iflt 33
iconst_1
goto 34
StackMap locals:
StackMap stack: long
33: iconst_1
iload 15
isub
StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int int long long top top top top int int
StackMap stack: long int
34: i2l
lmul
lstore 10
start local 10 35: invokestatic java.lang.System.nanoTime:()J
lload 10
ladd
ldc 20000000
lsub
lstore 12
end local 15 start local 12 36: goto 40
end local 12 end local 10 end local 8 37: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int int long top top top top top top int
StackMap stack:
lconst_0
dup2
lstore 12
start local 12 38: dup2
lstore 10
start local 10 39: lstore 8
start local 8 40: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int int int int long long long long int
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 15
start local 15 41: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 15
getstatic java.util.concurrent.ForkJoinPool.PARKBLOCKER:J
aload 0
invokevirtual sun.misc.Unsafe.putObject:(Ljava/lang/Object;JLjava/lang/Object;)V
42: aload 1
aload 15
putfield java.util.concurrent.ForkJoinPool$WorkQueue.parker:Ljava/lang/Thread;
43: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
ifge 45
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lload 6
lcmp
ifne 45
44: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
iconst_0
lload 10
invokevirtual sun.misc.Unsafe.park:(ZJ)V
45: StackMap locals: java.lang.Thread
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 1
getstatic java.util.concurrent.ForkJoinPool.QPARKER:J
aconst_null
invokevirtual sun.misc.Unsafe.putOrderedObject:(Ljava/lang/Object;JLjava/lang/Object;)V
46: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 15
getstatic java.util.concurrent.ForkJoinPool.PARKBLOCKER:J
aconst_null
invokevirtual sun.misc.Unsafe.putObject:(Ljava/lang/Object;JLjava/lang/Object;)V
47: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
iflt 49
48: goto 53
49: StackMap locals:
StackMap stack:
lload 10
lconst_0
lcmp
ifeq 4
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lload 6
lcmp
ifne 4
50: lload 12
invokestatic java.lang.System.nanoTime:()J
lsub
lconst_0
lcmp
ifgt 4
51: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
lload 6
lload 8
invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
ifeq 4
52: iconst_0
ireturn
end local 15 end local 14 end local 12 end local 10 end local 8 end local 6 end local 5 end local 4 end local 3 53: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Ljava/util/concurrent/ForkJoinPool;
0 54 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
0 54 2 r I
3 53 3 pred I
4 53 4 spins I
5 53 5 ss I
15 18 6 v Ljava/util/concurrent/ForkJoinPool$WorkQueue;
11 18 7 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
13 18 8 j I
23 53 6 c J
29 37 8 prevctl J
40 53 8 prevctl J
35 37 10 parkTime J
39 53 10 parkTime J
36 37 12 deadline J
38 53 12 deadline J
24 53 14 ac I
30 36 15 t I
41 53 15 wt Ljava/lang/Thread;
MethodParameters:
Name Flags
w
r
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=3, locals=16, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 5
start local 5 1: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 4
start local 4 2: ifnull 39
aload 4
arraylength
iconst_1
isub
dup
istore 6
start local 6 3: iflt 39
4: aload 2
ifnull 39
aload 1
ifnull 39
5: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.config:I
istore 7
start local 7 6: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.hint:I
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
ixor
istore 8
start local 8 7: iload 8
iload 6
iand
istore 9
start local 9 8: iconst_1
istore 10
start local 10 9: iload 9
istore 11
start local 11 10: iconst_0
istore 12
start local 12 11: iconst_0
istore 13
start local 13 12: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.CountedCompleter int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int int int int int int
StackMap stack:
aload 2
getfield java.util.concurrent.CountedCompleter.status:I
dup
istore 5
ifge 14
13: goto 39
14: StackMap locals:
StackMap stack:
iload 10
iconst_1
if_icmpne 22
aload 1
aload 2
iload 7
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.popCC:(Ljava/util/concurrent/CountedCompleter;I)Ljava/util/concurrent/CountedCompleter;
dup
astore 14
start local 14 15: ifnull 22
16: aload 14
invokevirtual java.util.concurrent.CountedCompleter.doExec:()I
pop
17: iload 3
ifeq 19
iinc 3 -1
iload 3
ifne 19
18: goto 39
19: StackMap locals: java.util.concurrent.CountedCompleter
StackMap stack:
iload 11
istore 9
20: iconst_0
dup
istore 13
istore 12
21: goto 12
end local 14 22: StackMap locals:
StackMap stack:
aload 4
iload 11
aaload
dup
astore 15
start local 15 23: ifnonnull 25
24: iconst_0
istore 10
goto 27
25: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.CountedCompleter int java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int int int int int int top java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 15
aload 2
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.pollAndExecCC:(Ljava/util/concurrent/CountedCompleter;)I
dup
istore 10
ifge 27
26: iload 13
iload 10
iadd
istore 13
27: StackMap locals:
StackMap stack:
iload 10
ifle 34
28: iload 10
iconst_1
if_icmpne 30
iload 3
ifeq 30
iinc 3 -1
iload 3
ifne 30
29: goto 39
30: StackMap locals:
StackMap stack:
iload 8
iload 8
bipush 13
ishl
ixor
istore 8
iload 8
iload 8
bipush 17
iushr
ixor
istore 8
iload 8
iload 8
iconst_5
ishl
ixor
istore 8
31: iload 8
iload 6
iand
dup
istore 11
istore 9
32: iconst_0
dup
istore 13
istore 12
33: goto 12
34: StackMap locals:
StackMap stack:
iload 11
iconst_1
iadd
iload 6
iand
dup
istore 11
iload 9
if_icmpne 12
35: iload 12
iload 13
dup
istore 12
if_icmpne 37
36: goto 39
37: StackMap locals:
StackMap stack:
iconst_0
istore 13
end local 15 38: goto 12
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 39: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.CountedCompleter int java.util.concurrent.ForkJoinPool$WorkQueue[] int
StackMap stack:
iload 5
ireturn
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 40 0 this Ljava/util/concurrent/ForkJoinPool;
0 40 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
0 40 2 task Ljava/util/concurrent/CountedCompleter<*>;
0 40 3 maxTasks I
2 40 4 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
1 40 5 s I
3 39 6 m I
6 39 7 mode I
7 39 8 r I
8 39 9 origin I
9 39 10 h I
10 39 11 k I
11 39 12 oldSum I
12 39 13 checkSum I
15 22 14 p Ljava/util/concurrent/CountedCompleter<*>;
23 38 15 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
Signature: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/CountedCompleter<*>;I)I
MethodParameters:
Name Flags
w
task
maxTasks
private void helpStealer(java.util.concurrent.ForkJoinPool$WorkQueue, java.util.concurrent.ForkJoinTask<?>);
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=17, 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;
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: aload 3
ifnull 54
aload 3
arraylength
iconst_1
isub
dup
istore 6
start local 6 3: iflt 54
aload 1
ifnull 54
4: aload 2
ifnull 54
5: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] int top int
StackMap stack:
iconst_0
istore 5
start local 5 6: aload 1
astore 8
start local 8 7: aload 2
astore 7
start local 7 8: goto 52
9: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] int int int java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 8
getfield java.util.concurrent.ForkJoinPool$WorkQueue.hint:I
iconst_1
ior
istore 10
start local 10 10: iconst_0
istore 11
start local 11 11: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] int int int java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue top int int
StackMap stack:
iload 11
iload 6
if_icmple 13
12: goto 53
13: StackMap locals:
StackMap stack:
aload 3
iload 10
iload 11
iadd
iload 6
iand
dup
istore 12
start local 12 14: aaload
dup
astore 9
start local 9 15: ifnull 20
16: aload 9
getfield java.util.concurrent.ForkJoinPool$WorkQueue.currentSteal:Ljava/util/concurrent/ForkJoinTask;
aload 7
if_acmpne 19
17: aload 8
iload 12
putfield java.util.concurrent.ForkJoinPool$WorkQueue.hint:I
18: goto 22
19: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] int int int java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinPool$WorkQueue int int int
StackMap stack:
iload 5
aload 9
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
iadd
istore 5
20: StackMap locals:
StackMap stack:
iinc 11 2
end local 12 end local 9 21: goto 11
end local 11 end local 10 start local 9 22: StackMap locals:
StackMap stack:
iload 5
aload 9
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
dup
istore 11
start local 11 23: iadd
istore 5
24: aload 9
getfield java.util.concurrent.ForkJoinPool$WorkQueue.currentJoin:Ljava/util/concurrent/ForkJoinTask;
astore 12
start local 12 25: aload 7
getfield java.util.concurrent.ForkJoinTask.status:I
iflt 53
aload 8
getfield java.util.concurrent.ForkJoinPool$WorkQueue.currentJoin:Ljava/util/concurrent/ForkJoinTask;
aload 7
if_acmpne 53
26: aload 9
getfield java.util.concurrent.ForkJoinPool$WorkQueue.currentSteal:Ljava/util/concurrent/ForkJoinTask;
aload 7
if_acmpeq 28
27: goto 53
28: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] int int int java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinPool$WorkQueue top int java.util.concurrent.ForkJoinTask
StackMap stack:
iload 11
aload 9
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
isub
ifge 30
aload 9
getfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
dup
astore 10
start local 10 29: ifnonnull 34
end local 10 30: StackMap locals:
StackMap stack:
aload 12
dup
astore 7
ifnonnull 32
31: goto 53
32: StackMap locals:
StackMap stack:
aload 9
astore 8
33: goto 52
start local 10 34: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] int int int java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask[] int java.util.concurrent.ForkJoinTask
StackMap stack:
aload 10
arraylength
iconst_1
isub
iload 11
iand
getstatic java.util.concurrent.ForkJoinPool.ASHIFT:I
ishl
getstatic java.util.concurrent.ForkJoinPool.ABASE:I
iadd
istore 13
start local 13 35: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 10
iload 13
i2l
invokevirtual sun.misc.Unsafe.getObjectVolatile:(Ljava/lang/Object;J)Ljava/lang/Object;
36: checkcast java.util.concurrent.ForkJoinTask
astore 14
start local 14 37: aload 9
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
iload 11
if_icmpne 22
38: aload 14
ifnonnull 40
39: goto 53
40: StackMap locals: int java.util.concurrent.ForkJoinTask
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 10
iload 13
i2l
aload 14
aconst_null
invokevirtual sun.misc.Unsafe.compareAndSwapObject:(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
ifeq 22
41: aload 9
iload 11
iconst_1
iadd
putfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
42: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.currentSteal:Ljava/util/concurrent/ForkJoinTask;
astore 15
start local 15 43: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
istore 16
start local 16 44: StackMap locals: java.util.concurrent.ForkJoinTask int
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 1
getstatic java.util.concurrent.ForkJoinPool.QCURRENTSTEAL:J
aload 14
invokevirtual sun.misc.Unsafe.putOrderedObject:(Ljava/lang/Object;JLjava/lang/Object;)V
45: aload 14
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
pop
46: aload 2
getfield java.util.concurrent.ForkJoinTask.status:I
iflt 49
47: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
iload 16
if_icmpeq 49
48: aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.pop:()Ljava/util/concurrent/ForkJoinTask;
dup
astore 14
ifnonnull 44
49: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 1
getstatic java.util.concurrent.ForkJoinPool.QCURRENTSTEAL:J
aload 15
invokevirtual sun.misc.Unsafe.putOrderedObject:(Ljava/lang/Object;JLjava/lang/Object;)V
50: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
if_icmpeq 22
51: return
end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 52: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] int int int java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 7
getfield java.util.concurrent.ForkJoinTask.status:I
ifge 9
end local 8 end local 7 53: StackMap locals:
StackMap stack:
aload 2
getfield java.util.concurrent.ForkJoinTask.status:I
iflt 54
iload 4
iload 5
dup
istore 4
if_icmpne 5
end local 6 end local 5 54: 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 55 0 this Ljava/util/concurrent/ForkJoinPool;
0 55 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
0 55 2 task Ljava/util/concurrent/ForkJoinTask<*>;
1 55 3 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
2 55 4 oldSum I
6 54 5 checkSum I
3 54 6 m I
8 53 7 subtask Ljava/util/concurrent/ForkJoinTask<*>;
7 53 8 j Ljava/util/concurrent/ForkJoinPool$WorkQueue;
15 21 9 v Ljava/util/concurrent/ForkJoinPool$WorkQueue;
22 52 9 v Ljava/util/concurrent/ForkJoinPool$WorkQueue;
10 22 10 h I
11 22 11 k I
14 21 12 i I
29 30 10 a [Ljava/util/concurrent/ForkJoinTask;
34 52 10 a [Ljava/util/concurrent/ForkJoinTask;
23 52 11 b I
25 52 12 next Ljava/util/concurrent/ForkJoinTask<*>;
35 52 13 i I
37 52 14 t Ljava/util/concurrent/ForkJoinTask<*>;
43 52 15 ps Ljava/util/concurrent/ForkJoinTask<*>;
44 52 16 top I
Signature: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask<*>;)V
MethodParameters:
Name Flags
w
task
private boolean tryCompensate(java.util.concurrent.ForkJoinPool$WorkQueue);
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=16, args_size=2
start local 0 start local 1 0: aload 1
ifnull 6
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.qlock:I
iflt 6
1: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
start local 3 2: ifnull 6
aload 3
arraylength
iconst_1
isub
dup
istore 6
start local 6 3: ifle 6
4: aload 0
getfield java.util.concurrent.ForkJoinPool.config:I
ldc 65535
iand
dup
istore 7
start local 7 5: ifne 8
end local 7 end local 6 end local 3 6: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 7: goto 50
end local 2 start local 3 start local 6 start local 7 8: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue top java.util.concurrent.ForkJoinPool$WorkQueue[] top top int int
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 4
start local 4 9: l2i
dup
istore 8
start local 8 10: ifeq 13
11: aload 0
lload 4
aload 3
iload 8
iload 6
iand
aaload
lconst_0
invokevirtual java.util.concurrent.ForkJoinPool.tryRelease:(JLjava/util/concurrent/ForkJoinPool$WorkQueue;J)Z
istore 2
start local 2 12: goto 50
end local 2 13: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue top java.util.concurrent.ForkJoinPool$WorkQueue[] long int int int
StackMap stack:
lload 4
bipush 48
lshr
l2i
iload 7
iadd
istore 9
start local 9 14: lload 4
bipush 32
lshr
l2i
i2s
iload 7
iadd
istore 10
start local 10 15: iconst_0
istore 11
start local 11 16: iconst_0
istore 12
start local 12 17: goto 24
18: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue top java.util.concurrent.ForkJoinPool$WorkQueue[] long int int int int int int int
StackMap stack:
aload 3
iload 12
iconst_1
ishl
iconst_1
ior
iload 6
iand
aaload
dup
astore 13
start local 13 19: ifnull 23
20: aload 13
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
iconst_1
iand
ifeq 22
21: goto 25
22: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
iinc 11 1
end local 13 23: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
24: iload 12
iload 6
if_icmple 18
end local 12 25: StackMap locals:
StackMap stack:
iload 11
iload 10
iconst_1
ishl
if_icmpne 26
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lload 4
lcmp
ifeq 28
26: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 27: goto 50
end local 2 28: StackMap locals:
StackMap stack:
iload 10
iload 7
if_icmplt 34
iload 9
iconst_1
if_icmple 34
aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.isEmpty:()Z
ifeq 34
29: ldc -281474976710656
lload 4
ldc 281474976710656
lsub
land
30: ldc 281474976710655
lload 4
land
31: lor
lstore 12
start local 12 32: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
lload 4
lload 12
invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
istore 2
end local 12 start local 2 33: goto 50
end local 2 34: StackMap locals:
StackMap stack:
iload 10
sipush 32767
if_icmpge 36
35: aload 0
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
if_acmpne 39
iload 10
iload 7
getstatic java.util.concurrent.ForkJoinPool.commonMaxSpares:I
iadd
if_icmplt 39
36: StackMap locals:
StackMap stack:
new java.util.concurrent.RejectedExecutionException
dup
37: ldc "Thread limit exceeded replacing blocked worker"
38: invokespecial java.util.concurrent.RejectedExecutionException.<init>:(Ljava/lang/String;)V
athrow
39: StackMap locals:
StackMap stack:
iconst_0
istore 12
start local 12 40: ldc -281474976710656
lload 4
land
41: ldc 281470681743360
lload 4
ldc 4294967296
ladd
land
42: lor
lstore 14
start local 14 43: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.lockRunState:()I
dup
istore 13
start local 13 44: ldc 536870912
iand
ifne 46
45: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
lload 4
lload 14
invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
istore 12
46: StackMap locals: int int long
StackMap stack:
aload 0
iload 13
iload 13
bipush -2
iand
invokevirtual java.util.concurrent.ForkJoinPool.unlockRunState:(II)V
47: iload 12
ifeq 48
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.createWorker:()Z
ifeq 48
iconst_1
goto 49
StackMap locals:
StackMap stack:
48: iconst_0
StackMap locals:
StackMap stack: int
49: istore 2
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 4 end local 3 start local 2 50: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Ljava/util/concurrent/ForkJoinPool;
0 51 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
7 8 2 canBlock Z
12 13 2 canBlock Z
27 28 2 canBlock Z
33 34 2 canBlock Z
50 51 2 canBlock Z
2 6 3 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
8 50 3 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
9 50 4 c J
3 6 6 m I
8 50 6 m I
5 6 7 pc I
8 50 7 pc I
10 50 8 sp I
14 50 9 ac I
15 50 10 tc I
16 50 11 nbusy I
17 25 12 i I
19 23 13 v Ljava/util/concurrent/ForkJoinPool$WorkQueue;
32 33 12 nc J
40 50 12 add Z
44 50 13 rs I
43 50 14 nc J
MethodParameters:
Name Flags
w
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=6, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 5
start local 5 1: aload 2
ifnull 30
aload 1
ifnull 30
2: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.currentJoin:Ljava/util/concurrent/ForkJoinTask;
astore 6
start local 6 3: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 1
getstatic java.util.concurrent.ForkJoinPool.QCURRENTJOIN:J
aload 2
invokevirtual sun.misc.Unsafe.putOrderedObject:(Ljava/lang/Object;JLjava/lang/Object;)V
4: aload 2
instanceof java.util.concurrent.CountedCompleter
ifeq 6
5: aload 2
checkcast java.util.concurrent.CountedCompleter
goto 7
StackMap locals: int java.util.concurrent.ForkJoinTask
StackMap stack:
6: aconst_null
7: StackMap locals:
StackMap stack: java.util.concurrent.CountedCompleter
astore 7
start local 7 8: StackMap locals: java.util.concurrent.CountedCompleter
StackMap stack:
aload 2
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 5
ifge 10
9: goto 29
10: StackMap locals:
StackMap stack:
aload 7
ifnull 12
11: aload 0
aload 1
aload 7
iconst_0
invokevirtual java.util.concurrent.ForkJoinPool.helpComplete:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/CountedCompleter;I)I
pop
goto 14
12: StackMap locals:
StackMap stack:
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
if_icmpeq 13
aload 1
aload 2
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.tryRemoveAndExec:(Ljava/util/concurrent/ForkJoinTask;)Z
ifeq 14
13: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual java.util.concurrent.ForkJoinPool.helpStealer:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;)V
14: StackMap locals:
StackMap stack:
aload 2
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 5
ifge 16
15: goto 29
16: StackMap locals:
StackMap stack:
lload 3
lconst_0
lcmp
ifne 19
17: lconst_0
lstore 8
start local 8 18: goto 25
end local 8 19: StackMap locals:
StackMap stack:
lload 3
invokestatic java.lang.System.nanoTime:()J
lsub
dup2
lstore 10
start local 10 20: lconst_0
lcmp
ifgt 22
21: goto 29
22: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask long int java.util.concurrent.ForkJoinTask java.util.concurrent.CountedCompleter top top long
StackMap stack:
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 10
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
dup2
lstore 8
start local 8 23: lconst_0
lcmp
ifgt 25
24: lconst_1
lstore 8
end local 10 25: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask long int java.util.concurrent.ForkJoinTask java.util.concurrent.CountedCompleter long
StackMap stack:
aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinPool.tryCompensate:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Z
ifeq 8
26: aload 2
lload 8
invokevirtual java.util.concurrent.ForkJoinTask.internalWait:(J)V
27: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
ldc 281474976710656
invokevirtual sun.misc.Unsafe.getAndAddLong:(Ljava/lang/Object;JJ)J
pop2
end local 8 28: goto 8
29: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 1
getstatic java.util.concurrent.ForkJoinPool.QCURRENTJOIN:J
aload 6
invokevirtual sun.misc.Unsafe.putOrderedObject:(Ljava/lang/Object;JLjava/lang/Object;)V
end local 7 end local 6 30: StackMap locals:
StackMap stack:
iload 5
ireturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Ljava/util/concurrent/ForkJoinPool;
0 31 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
0 31 2 task Ljava/util/concurrent/ForkJoinTask<*>;
0 31 3 deadline J
1 31 5 s I
3 30 6 prevJoin Ljava/util/concurrent/ForkJoinTask<*>;
8 30 7 cc Ljava/util/concurrent/CountedCompleter<*>;
18 19 8 ms J
23 28 8 ms J
20 25 10 ns J
Signature: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask<*>;J)I
MethodParameters:
Name Flags
w
task
deadline
private java.util.concurrent.ForkJoinPool$WorkQueue findNonEmptyStealQueue();
descriptor: ()Ljava/util/concurrent/ForkJoinPool$WorkQueue;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=10, args_size=1
start local 0 0: invokestatic java.util.concurrent.ThreadLocalRandom.nextSecondarySeed:()I
istore 3
start local 3 1: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 1
start local 1 2: ifnull 19
aload 1
arraylength
iconst_1
isub
dup
istore 2
start local 2 3: iflt 19
4: iload 3
iload 2
iand
istore 4
start local 4 5: iload 4
istore 5
start local 5 6: iconst_0
istore 6
start local 6 7: iconst_0
istore 7
start local 7 8: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] int int int int int int
StackMap stack:
aload 1
iload 5
aaload
dup
astore 8
start local 8 9: ifnull 14
10: aload 8
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
dup
istore 9
start local 9 11: aload 8
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
isub
ifge 13
12: aload 8
areturn
13: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack:
iload 7
iload 9
iadd
istore 7
end local 9 14: StackMap locals:
StackMap stack:
iload 5
iconst_1
iadd
iload 2
iand
dup
istore 5
iload 4
if_icmpne 8
15: iload 6
iload 7
dup
istore 6
if_icmpne 17
16: goto 19
17: StackMap locals:
StackMap stack:
iconst_0
istore 7
end local 8 18: goto 8
end local 7 end local 6 end local 5 end local 4 end local 2 19: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
aconst_null
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljava/util/concurrent/ForkJoinPool;
2 20 1 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
3 19 2 m I
1 20 3 r I
5 19 4 origin I
6 19 5 k I
7 19 6 oldSum I
8 19 7 checkSum I
9 18 8 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
11 14 9 b I
final void helpQuiescePool(java.util.concurrent.ForkJoinPool$WorkQueue);
descriptor: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
flags: (0x0010) ACC_FINAL
Code:
stack=10, locals=11, args_size=2
start local 0 start local 1 0: aload 1
getfield java.util.concurrent.ForkJoinPool$WorkQueue.currentSteal:Ljava/util/concurrent/ForkJoinTask;
astore 2
start local 2 1: iconst_1
istore 3
start local 3 2: StackMap locals: java.util.concurrent.ForkJoinTask int
StackMap stack:
aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.execLocalTasks:()V
3: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.findNonEmptyStealQueue:()Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 6
start local 6 4: ifnull 16
5: iload 3
ifne 8
6: iconst_1
istore 3
7: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
ldc 281474976710656
invokevirtual sun.misc.Unsafe.getAndAddLong:(Ljava/lang/Object;JJ)J
pop2
8: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask int top top java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 6
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
dup
istore 8
start local 8 9: aload 6
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
isub
ifge 2
aload 6
iload 8
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.pollAt:(I)Ljava/util/concurrent/ForkJoinTask;
dup
astore 7
start local 7 10: ifnull 2
11: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 1
getstatic java.util.concurrent.ForkJoinPool.QCURRENTSTEAL:J
aload 7
invokevirtual sun.misc.Unsafe.putOrderedObject:(Ljava/lang/Object;JLjava/lang/Object;)V
12: aload 7
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
pop
13: aload 1
dup
getfield java.util.concurrent.ForkJoinPool$WorkQueue.nsteals:I
iconst_1
iadd
dup_x1
putfield java.util.concurrent.ForkJoinPool$WorkQueue.nsteals:I
ifge 2
14: aload 1
aload 0
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.transferStealCount:(Ljava/util/concurrent/ForkJoinPool;)V
end local 7 15: goto 2
end local 8 16: StackMap locals:
StackMap stack:
iload 3
ifeq 24
17: ldc -281474976710656
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 4
start local 4 18: ldc 281474976710656
lsub
land
ldc 281474976710655
lload 4
land
lor
lstore 9
start local 9 19: lload 9
bipush 48
lshr
l2i
aload 0
getfield java.util.concurrent.ForkJoinPool.config:I
ldc 65535
iand
iadd
ifgt 21
20: goto 27
21: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask int long java.util.concurrent.ForkJoinPool$WorkQueue top top long
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
lload 4
lload 9
invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
ifeq 2
22: iconst_0
istore 3
end local 9 23: goto 2
end local 4 24: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask int top top java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 4
start local 4 25: bipush 48
lshr
l2i
aload 0
getfield java.util.concurrent.ForkJoinPool.config:I
ldc 65535
iand
iadd
ifgt 2
26: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.CTL:J
lload 4
lload 4
ldc 281474976710656
ladd
invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
ifeq 2
end local 6 end local 4 end local 3 27: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 1
getstatic java.util.concurrent.ForkJoinPool.QCURRENTSTEAL:J
aload 2
invokevirtual sun.misc.Unsafe.putOrderedObject:(Ljava/lang/Object;JLjava/lang/Object;)V
28: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljava/util/concurrent/ForkJoinPool;
0 29 1 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
1 29 2 ps Ljava/util/concurrent/ForkJoinTask<*>;
2 27 3 active Z
18 24 4 c J
25 27 4 c J
4 27 6 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
10 15 7 t Ljava/util/concurrent/ForkJoinTask<*>;
9 16 8 b I
19 23 9 nc J
MethodParameters:
Name Flags
w
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=5, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.nextLocalTask:()Ljava/util/concurrent/ForkJoinTask;
dup
astore 2
start local 2 1: ifnull 3
2: aload 2
areturn
3: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.findNonEmptyStealQueue:()Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
start local 3 4: ifnonnull 6
5: aconst_null
areturn
6: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
dup
istore 4
start local 4 7: aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
isub
ifge 0
aload 3
iload 4
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.pollAt:(I)Ljava/util/concurrent/ForkJoinTask;
dup
astore 2
ifnull 0
8: aload 2
areturn
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 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
1 9 2 t Ljava/util/concurrent/ForkJoinTask<*>;
4 9 3 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
7 9 4 b I
Signature: (Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Ljava/util/concurrent/ForkJoinTask<*>;
MethodParameters:
Name Flags
w
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 15
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: getfield java.util.concurrent.ForkJoinPool.config:I
ldc 65535
5: iand
istore 4
start local 4 6: aload 1
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
start local 3 7: getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
isub
istore 5
start local 5 8: aload 2
getfield java.util.concurrent.ForkJoinPool.ctl:J
bipush 48
lshr
l2i
iload 4
iadd
istore 6
start local 6 9: iload 5
iload 6
iload 4
iconst_1
iushr
dup
istore 4
if_icmple 10
iconst_0
goto 14
10: 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 6
iload 4
iconst_1
iushr
dup
istore 4
if_icmple 11
iconst_1
goto 14
11: StackMap locals:
StackMap stack: int
iload 6
iload 4
iconst_1
iushr
dup
istore 4
if_icmple 12
iconst_2
goto 14
12: StackMap locals:
StackMap stack: int
iload 6
iload 4
iconst_1
iushr
dup
istore 4
if_icmple 13
iconst_4
goto 14
13: StackMap locals:
StackMap stack: int
bipush 8
14: 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 15: StackMap locals: java.lang.Thread
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 16 0 t Ljava/lang/Thread;
3 15 1 wt Ljava/util/concurrent/ForkJoinWorkerThread;
4 15 2 pool Ljava/util/concurrent/ForkJoinPool;
7 15 3 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
6 15 4 p I
8 15 5 n I
9 15 6 a I
private boolean tryTerminate(boolean, boolean);
descriptor: (ZZ)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=17, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
if_acmpne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.runState:I
dup
istore 3
start local 3 3: iflt 8
4: iload 2
ifne 6
5: iconst_0
ireturn
6: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.lockRunState:()I
istore 3
7: aload 0
iload 3
iload 3
bipush -2
iand
ldc -2147483648
ior
invokevirtual java.util.concurrent.ForkJoinPool.unlockRunState:(II)V
8: StackMap locals:
StackMap stack:
iload 3
ldc 536870912
iand
ifne 37
9: iload 1
ifne 34
10: lconst_0
lstore 4
start local 4 11: StackMap locals: long
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lstore 12
start local 12 12: lload 12
bipush 48
lshr
l2i
aload 0
getfield java.util.concurrent.ForkJoinPool.config:I
ldc 65535
iand
iadd
ifle 14
13: iconst_0
ireturn
14: StackMap locals: java.util.concurrent.ForkJoinPool int int int long top top top top top top long
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 6
start local 6 15: ifnull 34
aload 6
arraylength
iconst_1
isub
dup
istore 8
start local 8 16: ifgt 18
end local 8 17: goto 34
start local 8 18: StackMap locals: java.util.concurrent.ForkJoinPool int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] top int top top top long
StackMap stack:
iconst_0
istore 14
start local 14 19: goto 32
20: StackMap locals: int
StackMap stack:
aload 6
iload 14
aaload
dup
astore 7
start local 7 21: ifnull 31
22: aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
dup
istore 9
start local 9 23: aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
if_icmpne 25
aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
ifge 25
24: aload 7
getfield java.util.concurrent.ForkJoinPool$WorkQueue.currentSteal:Ljava/util/concurrent/ForkJoinTask;
ifnull 28
25: StackMap locals: java.util.concurrent.ForkJoinPool int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int int top top long int
StackMap stack:
aload 0
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 10
start local 10 26: aload 6
iload 8
lload 10
l2i
iand
aaload
ldc 281474976710656
invokevirtual java.util.concurrent.ForkJoinPool.tryRelease:(JLjava/util/concurrent/ForkJoinPool$WorkQueue;J)Z
pop
27: iconst_0
ireturn
end local 10 28: StackMap locals:
StackMap stack:
lload 12
iload 9
i2l
ladd
lstore 12
29: iload 14
iconst_1
iand
ifne 31
30: aload 7
iconst_m1
putfield java.util.concurrent.ForkJoinPool$WorkQueue.qlock:I
end local 9 31: StackMap locals: java.util.concurrent.ForkJoinPool int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int top top top long int
StackMap stack:
iinc 14 1
end local 7 StackMap locals: java.util.concurrent.ForkJoinPool int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] top int top top top long int
StackMap stack:
32: iload 14
iload 8
if_icmple 20
end local 14 33: lload 4
lload 12
dup2
lstore 4
lcmp
ifne 11
end local 12 end local 8 end local 6 end local 4 34: StackMap locals: java.util.concurrent.ForkJoinPool int int int
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.runState:I
ldc 536870912
iand
ifne 37
35: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.lockRunState:()I
istore 3
36: aload 0
iload 3
iload 3
bipush -2
iand
ldc 536870912
ior
invokevirtual java.util.concurrent.ForkJoinPool.unlockRunState:(II)V
37: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 38: lconst_0
lstore 5
start local 5 39: StackMap locals: int long
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lstore 11
start local 11 40: lload 11
bipush 32
lushr
l2i
i2s
aload 0
getfield java.util.concurrent.ForkJoinPool.config:I
ldc 65535
iand
iadd
ifle 44
41: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 7
start local 7 42: ifnull 44
aload 7
arraylength
iconst_1
isub
dup
istore 10
start local 10 43: ifgt 52
end local 10 end local 7 44: StackMap locals: java.util.concurrent.ForkJoinPool int int int int long top top top top long
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.runState:I
ldc 1073741824
iand
ifne 84
45: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.lockRunState:()I
istore 3
46: aload 0
iload 3
iload 3
bipush -2
iand
ldc 1073741824
ior
invokevirtual java.util.concurrent.ForkJoinPool.unlockRunState:(II)V
47: aload 0
dup
astore 13
monitorenter
48: aload 0
invokevirtual java.lang.Object.notifyAll:()V
aload 13
monitorexit
49: goto 84
StackMap locals: java.util.concurrent.ForkJoinPool int int int int long top top top top long java.util.concurrent.ForkJoinPool
StackMap stack: java.lang.Throwable
50: aload 13
monitorexit
51: athrow
start local 7 start local 10 52: StackMap locals: java.util.concurrent.ForkJoinPool int int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] top top int long
StackMap stack:
iconst_0
istore 13
start local 13 53: goto 69
54: StackMap locals: int
StackMap stack:
aload 7
iload 13
aaload
dup
astore 8
start local 8 55: ifnull 68
56: lload 11
aload 8
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
i2l
ladd
lstore 11
57: aload 8
iconst_m1
putfield java.util.concurrent.ForkJoinPool$WorkQueue.qlock:I
58: iload 4
ifle 68
59: aload 8
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.cancelAll:()V
60: iload 4
iconst_1
if_icmple 68
aload 8
getfield java.util.concurrent.ForkJoinPool$WorkQueue.owner:Ljava/util/concurrent/ForkJoinWorkerThread;
dup
astore 9
start local 9 61: ifnull 68
62: aload 9
invokevirtual java.util.concurrent.ForkJoinWorkerThread.isInterrupted:()Z
ifne 66
63: aload 9
invokevirtual java.util.concurrent.ForkJoinWorkerThread.interrupt:()V
64: goto 66
StackMap locals: java.util.concurrent.ForkJoinPool int int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinWorkerThread int long int
StackMap stack: java.lang.Throwable
65: pop
66: StackMap locals:
StackMap stack:
aload 8
getfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
ifge 68
67: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 9
invokevirtual sun.misc.Unsafe.unpark:(Ljava/lang/Object;)V
end local 9 68: StackMap locals: java.util.concurrent.ForkJoinPool int int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue top int long int
StackMap stack:
iinc 13 1
end local 8 StackMap locals: java.util.concurrent.ForkJoinPool int int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] top top int long int
StackMap stack:
69: iload 13
iload 10
if_icmple 54
end local 13 70: lload 11
lload 5
lcmp
ifeq 74
71: lload 11
lstore 5
72: iconst_0
istore 4
73: goto 39
74: StackMap locals:
StackMap stack:
iload 4
iconst_3
if_icmple 76
iload 4
iload 10
if_icmple 76
75: goto 84
76: StackMap locals:
StackMap stack:
iinc 4 1
iload 4
iconst_1
if_icmple 39
77: iconst_0
istore 15
start local 15 78: goto 80
start local 13 start local 16 79: StackMap locals: long int int
StackMap stack:
aload 0
lload 13
aload 7
iload 16
iload 10
iand
aaload
ldc 281474976710656
invokevirtual java.util.concurrent.ForkJoinPool.tryRelease:(JLjava/util/concurrent/ForkJoinPool$WorkQueue;J)Z
pop
end local 16 end local 13 80: StackMap locals: java.util.concurrent.ForkJoinPool int int int int long java.util.concurrent.ForkJoinPool$WorkQueue[] top top int long top top int
StackMap stack:
iload 15
iinc 15 1
iload 10
if_icmpgt 39
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
dup2
lstore 13
start local 13 81: l2i
dup
istore 16
start local 16 82: ifne 79
end local 16 end local 15 end local 13 end local 11 end local 10 end local 7 83: goto 39
end local 5 84: StackMap locals: java.util.concurrent.ForkJoinPool int int int int
StackMap stack:
iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 85 0 this Ljava/util/concurrent/ForkJoinPool;
0 85 1 now Z
0 85 2 enable Z
3 85 3 rs I
11 34 4 oldSum J
15 34 6 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
21 32 7 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
16 17 8 m I
18 34 8 m I
23 31 9 b I
26 28 10 c J
12 34 12 checkSum J
19 33 14 i I
38 85 4 pass I
39 84 5 oldSum J
42 44 7 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
52 83 7 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
55 69 8 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
61 68 9 wt Ljava/util/concurrent/ForkJoinWorkerThread;
43 44 10 m I
52 83 10 m I
40 83 11 checkSum J
53 70 13 i I
79 80 13 c J
81 83 13 c J
78 83 15 j I
79 80 16 sp I
82 83 16 sp I
Exception table:
from to target type
48 49 50 any
50 51 50 any
63 64 65 Class java.lang.Throwable
MethodParameters:
Name Flags
now
enable
private void externalSubmit(java.util.concurrent.ForkJoinTask<?>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, 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:
iconst_0
istore 8
start local 8 5: aload 0
getfield java.util.concurrent.ForkJoinPool.runState:I
dup
istore 5
start local 5 6: ifge 9
7: aload 0
iconst_0
iconst_0
invokevirtual java.util.concurrent.ForkJoinPool.tryTerminate:(ZZ)Z
pop
8: new java.util.concurrent.RejectedExecutionException
dup
invokespecial java.util.concurrent.RejectedExecutionException.<init>:()V
athrow
9: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask int top top int top top int
StackMap stack:
iload 5
iconst_4
iand
ifeq 13
10: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
start local 3 11: ifnull 13
aload 3
arraylength
iconst_1
isub
dup
istore 6
start local 6 12: ifge 33
end local 6 end local 3 13: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 14: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.lockRunState:()I
istore 5
15: iload 5
iconst_4
iand
ifne 31
16: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinPool.STEALCOUNTER:J
aconst_null
17: new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
18: invokevirtual sun.misc.Unsafe.compareAndSwapObject:(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
pop
19: aload 0
getfield java.util.concurrent.ForkJoinPool.config:I
ldc 65535
iand
istore 10
start local 10 20: iload 10
iconst_1
if_icmple 21
iload 10
iconst_1
isub
goto 22
StackMap locals: int int
StackMap stack:
21: iconst_1
StackMap locals:
StackMap stack: int
22: istore 11
start local 11 23: iload 11
iload 11
iconst_1
iushr
ior
istore 11
iload 11
iload 11
iconst_2
iushr
ior
istore 11
iload 11
iload 11
iconst_4
iushr
ior
istore 11
24: iload 11
iload 11
bipush 8
iushr
ior
istore 11
iload 11
iload 11
bipush 16
iushr
ior
istore 11
iload 11
iconst_1
iadd
iconst_1
ishl
istore 11
25: aload 0
iload 11
anewarray java.util.concurrent.ForkJoinPool$WorkQueue
putfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
26: iconst_4
istore 9
end local 11 end local 10 27: goto 31
StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask int top top int top top int int
StackMap stack: java.lang.Throwable
28: astore 12
29: aload 0
iload 5
iload 5
bipush -2
iand
iload 9
ior
invokevirtual java.util.concurrent.ForkJoinPool.unlockRunState:(II)V
30: aload 12
athrow
31: StackMap locals:
StackMap stack:
aload 0
iload 5
iload 5
bipush -2
iand
iload 9
ior
invokevirtual java.util.concurrent.ForkJoinPool.unlockRunState:(II)V
end local 9 32: goto 68
start local 3 start local 6 33: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinPool$WorkQueue[] top int int top int
StackMap stack:
aload 3
iload 2
iload 6
iand
bipush 126
iand
dup
istore 7
start local 7 34: aaload
dup
astore 4
start local 4 35: ifnull 56
36: aload 4
getfield java.util.concurrent.ForkJoinPool$WorkQueue.qlock:I
ifne 54
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 4
getstatic java.util.concurrent.ForkJoinPool.QLOCK:J
iconst_0
iconst_1
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
ifeq 54
37: aload 4
getfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
astore 9
start local 9 38: aload 4
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
istore 10
start local 10 39: iconst_0
istore 11
start local 11 40: aload 9
ifnull 41
aload 9
arraylength
iload 10
iconst_1
iadd
aload 4
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
isub
if_icmpgt 42
41: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int int int int java.util.concurrent.ForkJoinTask[] int int
StackMap stack:
aload 4
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.growArray:()[Ljava/util/concurrent/ForkJoinTask;
dup
astore 9
ifnull 50
42: StackMap locals:
StackMap stack:
aload 9
arraylength
iconst_1
isub
iload 10
iand
getstatic java.util.concurrent.ForkJoinPool.ASHIFT:I
ishl
getstatic java.util.concurrent.ForkJoinPool.ABASE:I
iadd
istore 12
start local 12 43: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 9
iload 12
i2l
aload 1
invokevirtual sun.misc.Unsafe.putOrderedObject:(Ljava/lang/Object;JLjava/lang/Object;)V
44: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 4
getstatic java.util.concurrent.ForkJoinPool.QTOP:J
iload 10
iconst_1
iadd
invokevirtual sun.misc.Unsafe.putOrderedInt:(Ljava/lang/Object;JI)V
45: iconst_1
istore 11
end local 12 46: goto 50
StackMap locals:
StackMap stack: java.lang.Throwable
47: astore 13
48: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 4
getstatic java.util.concurrent.ForkJoinPool.QLOCK:J
iconst_1
iconst_0
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
pop
49: aload 13
athrow
50: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 4
getstatic java.util.concurrent.ForkJoinPool.QLOCK:J
iconst_1
iconst_0
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
pop
51: iload 11
ifeq 54
52: aload 0
aload 3
aload 4
invokevirtual java.util.concurrent.ForkJoinPool.signalWork:([Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
53: return
end local 11 end local 10 end local 9 54: StackMap locals:
StackMap stack:
iconst_1
istore 8
55: goto 68
56: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.runState:I
dup
istore 5
iconst_1
iand
ifne 67
57: 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 4
58: aload 4
iload 2
putfield java.util.concurrent.ForkJoinPool$WorkQueue.hint:I
59: aload 4
iload 7
ldc -2147483648
ior
putfield java.util.concurrent.ForkJoinPool$WorkQueue.config:I
60: aload 4
ldc -2147483648
putfield java.util.concurrent.ForkJoinPool$WorkQueue.scanState:I
61: aload 0
invokevirtual java.util.concurrent.ForkJoinPool.lockRunState:()I
istore 5
62: iload 5
ifle 65
aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
ifnull 65
63: iload 7
aload 3
arraylength
if_icmpge 65
aload 3
iload 7
aaload
ifnonnull 65
64: aload 3
iload 7
aload 4
aastore
65: StackMap locals:
StackMap stack:
aload 0
iload 5
iload 5
bipush -2
iand
invokevirtual java.util.concurrent.ForkJoinPool.unlockRunState:(II)V
66: goto 68
67: StackMap locals:
StackMap stack:
iconst_1
istore 8
end local 7 end local 6 end local 4 end local 3 68: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask int top top int top top int
StackMap stack:
iload 8
ifeq 4
69: iload 2
invokestatic java.util.concurrent.ThreadLocalRandom.advanceProbe:(I)I
istore 2
end local 8 end local 5 70: goto 4
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 task Ljava/util/concurrent/ForkJoinTask<*>;
1 71 2 r I
11 13 3 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
33 68 3 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
35 68 4 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
6 70 5 rs I
12 13 6 m I
33 68 6 m I
34 68 7 k I
5 70 8 move Z
14 32 9 ns I
20 27 10 p I
23 27 11 n I
38 54 9 a [Ljava/util/concurrent/ForkJoinTask;
39 54 10 s I
40 54 11 submitted Z
43 46 12 j I
Exception table:
from to target type
15 28 28 any
40 47 47 any
Signature: (Ljava/util/concurrent/ForkJoinTask<*>;)V
MethodParameters:
Name Flags
task
final void externalPush(java.util.concurrent.ForkJoinTask<?>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;)V
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=12, args_size=2
start local 0 start local 1 0: invokestatic java.util.concurrent.ThreadLocalRandom.getProbe:()I
istore 5
start local 5 1: aload 0
getfield java.util.concurrent.ForkJoinPool.runState:I
istore 6
start local 6 2: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 2
start local 2 3: ifnull 22
aload 2
arraylength
iconst_1
isub
dup
istore 4
start local 4 4: iflt 22
5: aload 2
iload 4
iload 5
iand
bipush 126
iand
aaload
dup
astore 3
start local 3 6: ifnull 22
iload 5
ifeq 22
iload 6
ifle 22
7: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 3
getstatic java.util.concurrent.ForkJoinPool.QLOCK:J
iconst_0
iconst_1
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
ifeq 22
8: aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
dup
astore 7
start local 7 9: ifnull 21
10: aload 7
arraylength
iconst_1
isub
dup
istore 8
start local 8 11: aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
dup
istore 10
start local 10 12: aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
isub
dup
istore 9
start local 9 13: if_icmple 21
14: iload 8
iload 10
iand
getstatic java.util.concurrent.ForkJoinPool.ASHIFT:I
ishl
getstatic java.util.concurrent.ForkJoinPool.ABASE:I
iadd
istore 11
start local 11 15: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 7
iload 11
i2l
aload 1
invokevirtual sun.misc.Unsafe.putOrderedObject:(Ljava/lang/Object;JLjava/lang/Object;)V
16: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 3
getstatic java.util.concurrent.ForkJoinPool.QTOP:J
iload 10
iconst_1
iadd
invokevirtual sun.misc.Unsafe.putOrderedInt:(Ljava/lang/Object;JI)V
17: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 3
getstatic java.util.concurrent.ForkJoinPool.QLOCK:J
iconst_0
invokevirtual sun.misc.Unsafe.putIntVolatile:(Ljava/lang/Object;JI)V
18: iload 9
iconst_1
if_icmpgt 20
19: aload 0
aload 2
aload 3
invokevirtual java.util.concurrent.ForkJoinPool.signalWork:([Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
20: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int int int java.util.concurrent.ForkJoinTask[] int int int int
StackMap stack:
return
end local 11 end local 10 end local 9 end local 8 21: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int int int java.util.concurrent.ForkJoinTask[]
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 3
getstatic java.util.concurrent.ForkJoinPool.QLOCK:J
iconst_1
iconst_0
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
pop
end local 7 end local 4 end local 3 22: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] top top int int
StackMap stack:
aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinPool.externalSubmit:(Ljava/util/concurrent/ForkJoinTask;)V
23: return
end local 6 end local 5 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Ljava/util/concurrent/ForkJoinPool;
0 24 1 task Ljava/util/concurrent/ForkJoinTask<*>;
3 24 2 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
6 22 3 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
4 22 4 m I
1 24 5 r I
2 24 6 rs I
9 22 7 a [Ljava/util/concurrent/ForkJoinTask;
11 21 8 am I
13 21 9 n I
12 21 10 s I
15 21 11 j I
Signature: (Ljava/util/concurrent/ForkJoinTask<*>;)V
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
iconst_1
isub
dup
istore 3
start local 3 5: iflt 7
6: aload 2
iload 3
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 m I
final boolean tryExternalUnpush(java.util.concurrent.ForkJoinTask<?>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;)Z
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: invokestatic java.util.concurrent.ThreadLocalRandom.getProbe:()I
istore 7
start local 7 1: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 2
start local 2 2: ifnull 18
aload 2
arraylength
iconst_1
isub
dup
istore 5
start local 5 3: iflt 18
4: aload 2
iload 5
iload 7
iand
bipush 126
iand
aaload
dup
astore 3
start local 3 5: ifnull 18
6: aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
dup
astore 4
start local 4 7: ifnull 18
aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
dup
istore 6
start local 6 8: aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
if_icmpeq 18
9: aload 4
arraylength
iconst_1
isub
iload 6
iconst_1
isub
iand
getstatic java.util.concurrent.ForkJoinPool.ASHIFT:I
ishl
getstatic java.util.concurrent.ForkJoinPool.ABASE:I
iadd
i2l
lstore 8
start local 8 10: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 3
getstatic java.util.concurrent.ForkJoinPool.QLOCK:J
iconst_0
iconst_1
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
ifeq 18
11: aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
iload 6
if_icmpne 17
aload 3
getfield java.util.concurrent.ForkJoinPool$WorkQueue.array:[Ljava/util/concurrent/ForkJoinTask;
aload 4
if_acmpne 17
12: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 4
lload 8
invokevirtual sun.misc.Unsafe.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
aload 1
if_acmpne 17
13: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 4
lload 8
aload 1
aconst_null
invokevirtual sun.misc.Unsafe.compareAndSwapObject:(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
ifeq 17
14: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 3
getstatic java.util.concurrent.ForkJoinPool.QTOP:J
iload 6
iconst_1
isub
invokevirtual sun.misc.Unsafe.putOrderedInt:(Ljava/lang/Object;JI)V
15: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 3
getstatic java.util.concurrent.ForkJoinPool.QLOCK:J
iconst_0
invokevirtual sun.misc.Unsafe.putOrderedInt:(Ljava/lang/Object;JI)V
16: iconst_1
ireturn
17: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask[] int int int long
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 3
getstatic java.util.concurrent.ForkJoinPool.QLOCK:J
iconst_1
iconst_0
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
pop
end local 8 end local 6 end local 5 end local 4 end local 3 18: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinTask java.util.concurrent.ForkJoinPool$WorkQueue[] top top top top int
StackMap stack:
iconst_0
ireturn
end local 7 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/util/concurrent/ForkJoinPool;
0 19 1 task Ljava/util/concurrent/ForkJoinTask<*>;
2 19 2 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
5 18 3 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
7 18 4 a [Ljava/util/concurrent/ForkJoinTask;
3 18 5 m I
8 18 6 s I
1 19 7 r I
10 18 8 j J
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=6, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.util.concurrent.ThreadLocalRandom.getProbe:()I
istore 5
start local 5 1: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 3
start local 3 2: ifnull 4
aload 3
arraylength
dup
istore 4
start local 4 3: ifne 5
end local 4 StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.CountedCompleter int java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
4: iconst_0
goto 6
start local 4 5: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.CountedCompleter int java.util.concurrent.ForkJoinPool$WorkQueue[] int int
StackMap stack:
aload 0
aload 3
iload 4
iconst_1
isub
iload 5
iand
bipush 126
iand
aaload
aload 1
iload 2
invokevirtual java.util.concurrent.ForkJoinPool.helpComplete:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/CountedCompleter;I)I
end local 4 6: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.CountedCompleter int java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack: int
ireturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/concurrent/ForkJoinPool;
0 7 1 task Ljava/util/concurrent/CountedCompleter<*>;
0 7 2 maxTasks I
2 7 3 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
3 4 4 n I
5 6 4 n I
1 7 5 r I
Signature: (Ljava/util/concurrent/CountedCompleter<*>;I)I
MethodParameters:
Name Flags
task
maxTasks
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, 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
invokespecial java.util.concurrent.ForkJoinPool.<init>:(ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;Z)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ForkJoinPool;
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, 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
invokespecial java.util.concurrent.ForkJoinPool.<init>:(ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;Z)V
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 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=8, 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
invokestatic java.util.concurrent.ForkJoinPool.checkParallelism:(I)I
1: aload 2
invokestatic java.util.concurrent.ForkJoinPool.checkFactory:(Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;)Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
2: aload 3
3: iload 4
ifeq 4
ldc 65536
goto 5
StackMap locals: uninitialized-this int java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Thread$UncaughtExceptionHandler int
StackMap stack: uninitialized-this int java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Thread$UncaughtExceptionHandler
4: iconst_0
5: StackMap locals: uninitialized-this int java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Thread$UncaughtExceptionHandler int
StackMap stack: uninitialized-this int java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Thread$UncaughtExceptionHandler int
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;
invokespecial java.util.concurrent.ForkJoinPool.<init>:(ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;ILjava/lang/String;)V
6: invokestatic java.util.concurrent.ForkJoinPool.checkPermission:()V
7: return
end local 4 end local 3 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 parallelism I
0 8 2 factory Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
0 8 3 handler Ljava/lang/Thread$UncaughtExceptionHandler;
0 8 4 asyncMode Z
MethodParameters:
Name Flags
parallelism
factory
handler
asyncMode
private static int checkParallelism(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
ifle 1
iload 0
sipush 32767
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
iload 0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 parallelism I
MethodParameters:
Name Flags
parallelism
private static java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory checkFactory(java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory);
descriptor: (Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;)Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 factory Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
MethodParameters:
Name Flags
factory
private void <init>(int, java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory, java.lang.Thread$UncaughtExceptionHandler, int, java.lang.String);
descriptor: (ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;ILjava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.util.concurrent.AbstractExecutorService.<init>:()V
1: aload 0
aload 5
putfield java.util.concurrent.ForkJoinPool.workerNamePrefix:Ljava/lang/String;
2: aload 0
aload 2
putfield java.util.concurrent.ForkJoinPool.factory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
3: aload 0
aload 3
putfield java.util.concurrent.ForkJoinPool.ueh:Ljava/lang/Thread$UncaughtExceptionHandler;
4: aload 0
iload 1
ldc 65535
iand
iload 4
ior
putfield java.util.concurrent.ForkJoinPool.config:I
5: iload 1
ineg
i2l
lstore 6
start local 6 6: aload 0
lload 6
bipush 48
lshl
ldc -281474976710656
land
lload 6
bipush 32
lshl
ldc 281470681743360
land
lor
putfield java.util.concurrent.ForkJoinPool.ctl:J
7: 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 8 0 this Ljava/util/concurrent/ForkJoinPool;
0 8 1 parallelism I
0 8 2 factory Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
0 8 3 handler Ljava/lang/Thread$UncaughtExceptionHandler;
0 8 4 mode I
0 8 5 workerNamePrefix Ljava/lang/String;
6 8 6 np J
MethodParameters:
Name Flags
parallelism
factory
handler
mode
workerNamePrefix
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.externalPush:(Ljava/util/concurrent/ForkJoinTask;)V
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 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.externalPush:(Ljava/util/concurrent/ForkJoinTask;)V
3: return
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<*>;
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.externalPush:(Ljava/util/concurrent/ForkJoinTask;)V
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 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.externalPush:(Ljava/util/concurrent/ForkJoinTask;)V
3: aload 1
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;>;)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=3, locals=3, 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
astore 2
start local 2 1: aload 0
aload 2
invokevirtual java.util.concurrent.ForkJoinPool.externalPush:(Ljava/util/concurrent/ForkJoinTask;)V
2: aload 2
areturn
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 task Ljava/util/concurrent/Callable<TT;>;
1 3 2 job Ljava/util/concurrent/ForkJoinTask<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=4, locals=4, 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
astore 3
start local 3 1: aload 0
aload 3
invokevirtual java.util.concurrent.ForkJoinPool.externalPush:(Ljava/util/concurrent/ForkJoinTask;)V
2: aload 3
areturn
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 task Ljava/lang/Runnable;
0 3 2 result TT;
1 3 3 job Ljava/util/concurrent/ForkJoinTask<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=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$AdaptedRunnableAction
dup
aload 1
invokespecial java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.<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.externalPush:(Ljava/util/concurrent/ForkJoinTask;)V
7: aload 2
areturn
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<*>;
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=11, 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: iconst_0
istore 3
start local 3 2: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.ArrayList int top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.concurrent.Callable
astore 4
start local 4 4: new java.util.concurrent.ForkJoinTask$AdaptedCallable
dup
aload 4
invokespecial java.util.concurrent.ForkJoinTask$AdaptedCallable.<init>:(Ljava/util/concurrent/Callable;)V
astore 6
start local 6 5: aload 2
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
6: aload 0
aload 6
invokevirtual java.util.concurrent.ForkJoinPool.externalPush:(Ljava/util/concurrent/ForkJoinTask;)V
end local 6 end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: iconst_0
istore 4
start local 4 9: aload 2
invokevirtual java.util.ArrayList.size:()I
istore 5
start local 5 10: goto 13
11: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.ArrayList int int int
StackMap stack:
aload 2
iload 4
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.util.concurrent.ForkJoinTask
invokevirtual java.util.concurrent.ForkJoinTask.quietlyJoin:()V
12: iinc 4 1
StackMap locals:
StackMap stack:
13: iload 4
iload 5
if_icmplt 11
end local 5 end local 4 14: iconst_1
istore 3
15: aload 2
astore 8
16: iload 3
ifne 23
17: iconst_0
istore 9
start local 9 18: aload 2
invokevirtual java.util.ArrayList.size:()I
istore 10
start local 10 19: goto 22
20: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.ArrayList int top top top top java.util.List int int
StackMap stack:
aload 2
iload 9
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
21: iinc 9 1
StackMap locals:
StackMap stack:
22: iload 9
iload 10
if_icmplt 20
end local 10 end local 9 23: StackMap locals:
StackMap stack:
aload 8
areturn
24: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.ArrayList int
StackMap stack: java.lang.Throwable
astore 7
25: iload 3
ifne 32
26: iconst_0
istore 9
start local 9 27: aload 2
invokevirtual java.util.ArrayList.size:()I
istore 10
start local 10 28: goto 31
29: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.ArrayList int top top top java.lang.Throwable top int int
StackMap stack:
aload 2
iload 9
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
30: iinc 9 1
StackMap locals:
StackMap stack:
31: iload 9
iload 10
if_icmplt 29
end local 10 end local 9 32: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection java.util.ArrayList int top top top java.lang.Throwable
StackMap stack:
aload 7
athrow
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 tasks Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;
1 33 2 futures Ljava/util/ArrayList<Ljava/util/concurrent/Future<TT;>;>;
2 33 3 done Z
4 7 4 t Ljava/util/concurrent/Callable<TT;>;
5 7 6 f Ljava/util/concurrent/ForkJoinTask<TT;>;
9 14 4 i I
10 14 5 size I
18 23 9 i I
27 32 9 i I
19 23 10 size I
28 32 10 size I
Exception table:
from to target type
2 16 24 any
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.config:I
ldc 65535
iand
dup
istore 1
start local 1 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.commonParallelism: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.config: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.config: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: iconst_0
istore 1
start local 1 1: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 2
start local 2 2: ifnull 10
3: iconst_1
istore 4
start local 4 4: goto 9
5: StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
aload 2
iload 4
aaload
dup
astore 3
start local 3 6: ifnull 8
aload 3
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.isApparentlyUnblocked:()Z
ifeq 8
7: iinc 1 1
8: StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack:
iinc 4 2
end local 3 StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
9: iload 4
aload 2
arraylength
if_icmplt 5
end local 4 10: StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/concurrent/ForkJoinPool;
1 11 1 rc I
2 11 2 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
6 9 3 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
4 10 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.config: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=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.config:I
ldc 65535
iand
aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
bipush 48
lshr
l2i
iadd
ifgt 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 long getStealCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.stealCounter:Ljava/util/concurrent/atomic/AtomicLong;
astore 1
start local 1 1: aload 1
ifnonnull 2
lconst_0
goto 3
StackMap locals: java.util.concurrent.atomic.AtomicLong
StackMap stack:
2: aload 1
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
StackMap locals:
StackMap stack: long
3: lstore 2
start local 2 4: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 4
start local 4 5: ifnull 13
6: iconst_1
istore 6
start local 6 7: goto 12
8: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.atomic.AtomicLong long java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
aload 4
iload 6
aaload
dup
astore 5
start local 5 9: ifnull 11
10: lload 2
aload 5
getfield java.util.concurrent.ForkJoinPool$WorkQueue.nsteals:I
i2l
ladd
lstore 2
11: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.atomic.AtomicLong long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack:
iinc 6 2
end local 5 StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.atomic.AtomicLong long java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
12: iload 6
aload 4
arraylength
if_icmplt 8
end local 6 13: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.atomic.AtomicLong long java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
lload 2
lreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/util/concurrent/ForkJoinPool;
1 14 1 sc Ljava/util/concurrent/atomic/AtomicLong;
4 14 2 count J
5 14 4 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
9 12 5 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
7 13 6 i I
public long getQueuedTaskCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: lconst_0
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
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.queueSize:()I
i2l
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 int getQueuedSubmissionCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 2
start local 2 2: ifnull 10
3: iconst_0
istore 4
start local 4 4: goto 9
5: StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
aload 2
iload 4
aaload
dup
astore 3
start local 3 6: ifnull 8
7: iload 1
aload 3
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.queueSize:()I
iadd
istore 1
8: StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int
StackMap stack:
iinc 4 2
end local 3 StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
9: iload 4
aload 2
arraylength
if_icmplt 5
end local 4 10: StackMap locals: java.util.concurrent.ForkJoinPool int java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/concurrent/ForkJoinPool;
1 11 1 count I
2 11 2 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
6 9 3 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
4 10 4 i I
public boolean hasQueuedSubmissions();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 1
start local 1 1: ifnull 9
2: iconst_0
istore 3
start local 3 3: goto 8
4: 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 5: ifnull 7
aload 2
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.isEmpty:()Z
ifne 7
6: iconst_1
ireturn
7: 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:
8: iload 3
aload 1
arraylength
if_icmplt 4
end local 3 9: 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 10 0 this Ljava/util/concurrent/ForkJoinPool;
1 10 1 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
5 8 2 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
3 9 3 i I
protected java.util.concurrent.ForkJoinTask<?> pollSubmission();
descriptor: ()Ljava/util/concurrent/ForkJoinTask;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 1
start local 1 1: ifnull 10
2: iconst_0
istore 4
start local 4 3: goto 9
4: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] top top int
StackMap stack:
aload 1
iload 4
aaload
dup
astore 2
start local 2 5: ifnull 8
aload 2
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.poll:()Ljava/util/concurrent/ForkJoinTask;
dup
astore 3
start local 3 6: ifnull 8
7: aload 3
areturn
end local 3 8: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue top int
StackMap stack:
iinc 4 2
end local 2 StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[] top top int
StackMap stack:
9: iload 4
aload 1
arraylength
if_icmplt 4
end local 4 10: StackMap locals: java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/concurrent/ForkJoinPool;
1 11 1 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
5 9 2 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
6 8 3 t Ljava/util/concurrent/ForkJoinTask<*>;
3 10 4 i I
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: iconst_0
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 14
3: iconst_0
istore 6
start local 6 4: goto 13
5: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection int java.util.concurrent.ForkJoinPool$WorkQueue[] top top int
StackMap stack:
aload 3
iload 6
aaload
dup
astore 4
start local 4 6: ifnull 12
7: goto 10
start local 5 8: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection int java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue java.util.concurrent.ForkJoinTask int
StackMap stack:
aload 1
aload 5
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
9: iinc 2 1
end local 5 10: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection int java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue top int
StackMap stack:
aload 4
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.poll:()Ljava/util/concurrent/ForkJoinTask;
dup
astore 5
start local 5 11: ifnonnull 8
end local 5 12: StackMap locals:
StackMap stack:
iinc 6 1
end local 4 StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection int java.util.concurrent.ForkJoinPool$WorkQueue[] top top int
StackMap stack:
13: iload 6
aload 3
arraylength
if_icmplt 5
end local 6 14: StackMap locals: java.util.concurrent.ForkJoinPool java.util.Collection int java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/util/concurrent/ForkJoinPool;
0 15 1 c Ljava/util/Collection<-Ljava/util/concurrent/ForkJoinTask<*>;>;
1 15 2 count I
2 15 3 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
6 13 4 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
8 10 5 t Ljava/util/concurrent/ForkJoinTask<*>;
11 12 5 t Ljava/util/concurrent/ForkJoinTask<*>;
4 14 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=4, locals=18, args_size=1
start local 0 0: lconst_0
lstore 1
start local 1 1: lconst_0
lstore 3
start local 3 2: iconst_0
istore 5
start local 5 3: aload 0
getfield java.util.concurrent.ForkJoinPool.stealCounter:Ljava/util/concurrent/atomic/AtomicLong;
astore 6
start local 6 4: aload 6
ifnonnull 5
lconst_0
goto 6
StackMap locals: java.util.concurrent.ForkJoinPool long long int java.util.concurrent.atomic.AtomicLong
StackMap stack:
5: aload 6
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
StackMap locals:
StackMap stack: long
6: lstore 7
start local 7 7: aload 0
getfield java.util.concurrent.ForkJoinPool.ctl:J
lstore 9
start local 9 8: aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 11
start local 11 9: ifnull 23
10: iconst_0
istore 13
start local 13 11: goto 22
12: StackMap locals: java.util.concurrent.ForkJoinPool long long int java.util.concurrent.atomic.AtomicLong long long java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
aload 11
iload 13
aaload
dup
astore 12
start local 12 13: ifnull 21
14: aload 12
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.queueSize:()I
istore 14
start local 14 15: iload 13
iconst_1
iand
ifne 17
16: lload 3
iload 14
i2l
ladd
lstore 3
goto 21
17: StackMap locals: java.util.concurrent.ForkJoinPool long long int java.util.concurrent.atomic.AtomicLong long long java.util.concurrent.ForkJoinPool$WorkQueue[] java.util.concurrent.ForkJoinPool$WorkQueue int int
StackMap stack:
lload 1
iload 14
i2l
ladd
lstore 1
18: lload 7
aload 12
getfield java.util.concurrent.ForkJoinPool$WorkQueue.nsteals:I
i2l
ladd
lstore 7
19: aload 12
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.isApparentlyUnblocked:()Z
ifeq 21
20: iinc 5 1
end local 14 21: StackMap locals:
StackMap stack:
iinc 13 1
end local 12 StackMap locals: java.util.concurrent.ForkJoinPool long long int java.util.concurrent.atomic.AtomicLong long long java.util.concurrent.ForkJoinPool$WorkQueue[] top int
StackMap stack:
22: iload 13
aload 11
arraylength
if_icmplt 12
end local 13 23: StackMap locals: java.util.concurrent.ForkJoinPool long long int java.util.concurrent.atomic.AtomicLong long long java.util.concurrent.ForkJoinPool$WorkQueue[]
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.config:I
ldc 65535
iand
istore 13
start local 13 24: iload 13
lload 9
bipush 32
lushr
l2i
i2s
iadd
istore 14
start local 14 25: iload 13
lload 9
bipush 48
lshr
l2i
iadd
istore 15
start local 15 26: iload 15
ifge 28
27: iconst_0
istore 15
28: StackMap locals: java.util.concurrent.ForkJoinPool long long int java.util.concurrent.atomic.AtomicLong long long java.util.concurrent.ForkJoinPool$WorkQueue[] top int int int
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinPool.runState:I
istore 16
start local 16 29: iload 16
ldc 1073741824
iand
ifeq 30
ldc "Terminated"
goto 33
30: StackMap locals: int
StackMap stack:
iload 16
ldc 536870912
iand
ifeq 31
ldc "Terminating"
goto 33
31: StackMap locals:
StackMap stack:
iload 16
ldc -2147483648
iand
ifeq 32
ldc "Shutting down"
goto 33
32: StackMap locals:
StackMap stack:
ldc "Running"
33: StackMap locals:
StackMap stack: java.lang.String
astore 17
start local 17 34: 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
35: ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 17
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
36: ldc ", parallelism = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 13
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
37: ldc ", size = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 14
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
38: ldc ", active = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 15
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
39: ldc ", running = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
40: ldc ", steals = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 7
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
41: ldc ", tasks = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
42: ldc ", submissions = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 3
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
43: ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
44: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 17 end local 16 end local 15 end local 14 end local 13 end local 11 end local 9 end local 7 end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Ljava/util/concurrent/ForkJoinPool;
1 45 1 qt J
2 45 3 qs J
3 45 5 rc I
4 45 6 sc Ljava/util/concurrent/atomic/AtomicLong;
7 45 7 st J
8 45 9 c J
9 45 11 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
13 22 12 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
11 23 13 i I
15 21 14 size I
24 45 13 pc I
25 45 14 tc I
26 45 15 ac I
29 45 16 rs I
34 45 17 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.runState:I
ldc 1073741824
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.runState:I
istore 1
start local 1 1: iload 1
ldc 536870912
iand
ifeq 2
iload 1
ldc 1073741824
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 rs 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.runState:I
ldc -2147483648
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=19, 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: iconst_0
istore 11
start local 11 9: iconst_1
istore 13
start local 13 10: goto 30
start local 10 start local 12 11: StackMap locals: java.util.concurrent.ForkJoinPool long java.util.concurrent.TimeUnit long top java.lang.Thread long java.util.concurrent.ForkJoinPool$WorkQueue[] int int int
StackMap stack:
iload 13
ifne 15
12: invokestatic java.lang.System.nanoTime:()J
lload 8
lsub
lload 4
lcmp
ifle 14
13: iconst_0
ireturn
14: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.yield:()V
15: StackMap locals:
StackMap stack:
iconst_0
istore 13
16: iload 12
iconst_1
iadd
iconst_2
ishl
istore 14
start local 14 17: goto 29
18: StackMap locals: int
StackMap stack:
iload 11
iinc 11 1
iload 12
iand
dup
istore 18
start local 18 19: iload 12
if_icmpgt 28
iload 18
iflt 28
aload 10
iload 18
aaload
dup
astore 16
start local 16 20: ifnull 28
21: aload 16
getfield java.util.concurrent.ForkJoinPool$WorkQueue.base:I
dup
istore 17
start local 17 22: aload 16
getfield java.util.concurrent.ForkJoinPool$WorkQueue.top:I
isub
ifge 28
23: iconst_1
istore 13
24: aload 16
iload 17
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.pollAt:(I)Ljava/util/concurrent/ForkJoinTask;
dup
astore 15
start local 15 25: ifnull 30
26: aload 15
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
pop
27: goto 30
end local 18 end local 17 end local 16 end local 15 28: StackMap locals:
StackMap stack:
iinc 14 -1
StackMap locals:
StackMap stack:
29: iload 14
ifge 18
end local 14 end local 12 end local 10 30: StackMap locals: java.util.concurrent.ForkJoinPool long java.util.concurrent.TimeUnit long top java.lang.Thread long top int top int
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.isQuiescent:()Z
ifne 34
aload 0
getfield java.util.concurrent.ForkJoinPool.workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 10
start local 10 31: ifnull 34
32: aload 10
arraylength
iconst_1
isub
dup
istore 12
start local 12 33: ifge 11
end local 12 end local 10 34: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 13 end local 11 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 35 0 this Ljava/util/concurrent/ForkJoinPool;
0 35 1 timeout J
0 35 3 unit Ljava/util/concurrent/TimeUnit;
1 35 4 nanos J
4 7 6 wt Ljava/util/concurrent/ForkJoinWorkerThread;
2 35 7 thread Ljava/lang/Thread;
8 35 8 startTime J
11 30 10 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
31 34 10 ws [Ljava/util/concurrent/ForkJoinPool$WorkQueue;
9 35 11 r I
11 30 12 m I
33 34 12 m I
10 35 13 found Z
17 30 14 j I
25 28 15 t Ljava/util/concurrent/ForkJoinTask<*>;
20 28 16 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
22 28 17 b I
19 28 18 k I
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=6, locals=6, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 3
start local 3 1: aload 3
instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 18
2: aload 3
checkcast java.util.concurrent.ForkJoinWorkerThread
dup
astore 2
start local 2 3: getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
dup
astore 1
start local 1 4: ifnull 18
5: aload 2
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 4
start local 4 6: goto 16
7: StackMap locals: java.util.concurrent.ForkJoinPool$ManagedBlocker java.util.concurrent.ForkJoinPool java.util.concurrent.ForkJoinWorkerThread java.lang.Thread java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 1
aload 4
invokevirtual java.util.concurrent.ForkJoinPool.tryCompensate:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Z
ifeq 16
8: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.concurrent.ForkJoinPool$ManagedBlocker.isReleasable:()Z
ifne 14
9: aload 0
invokeinterface java.util.concurrent.ForkJoinPool$ManagedBlocker.block:()Z
ifeq 8
10: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 5
12: getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 1
getstatic java.util.concurrent.ForkJoinPool.CTL:J
ldc 281474976710656
invokevirtual sun.misc.Unsafe.getAndAddLong:(Ljava/lang/Object;JJ)J
pop2
13: aload 5
athrow
14: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.U:Lsun/misc/Unsafe;
aload 1
getstatic java.util.concurrent.ForkJoinPool.CTL:J
ldc 281474976710656
invokevirtual sun.misc.Unsafe.getAndAddLong:(Ljava/lang/Object;JJ)J
pop2
15: goto 20
16: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.concurrent.ForkJoinPool$ManagedBlocker.isReleasable:()Z
ifeq 7
end local 4 17: goto 20
end local 2 end local 1 18: StackMap locals: java.util.concurrent.ForkJoinPool$ManagedBlocker top top java.lang.Thread
StackMap stack:
aload 0
invokeinterface java.util.concurrent.ForkJoinPool$ManagedBlocker.isReleasable:()Z
ifne 20
19: aload 0
invokeinterface java.util.concurrent.ForkJoinPool$ManagedBlocker.block:()Z
ifeq 18
20: StackMap locals:
StackMap stack:
return
end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 blocker Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;
4 18 1 p Ljava/util/concurrent/ForkJoinPool;
3 18 2 wt Ljava/util/concurrent/ForkJoinWorkerThread;
1 21 3 t Ljava/lang/Thread;
6 17 4 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
Exception table:
from to target type
8 11 11 any
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
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
private static java.util.concurrent.ForkJoinPool makeCommonPool();
descriptor: ()Ljava/util/concurrent/ForkJoinPool;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=6, args_size=0
0: iconst_m1
istore 0
start local 0 1: aconst_null
astore 1
start local 1 2: aconst_null
astore 2
start local 2 3: ldc "java.util.concurrent.ForkJoinPool.common.parallelism"
4: invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 5: ldc "java.util.concurrent.ForkJoinPool.common.threadFactory"
6: invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 7: ldc "java.util.concurrent.ForkJoinPool.common.exceptionHandler"
8: invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 9: aload 3
ifnull 11
10: aload 3
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 0
11: StackMap locals: int java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Thread$UncaughtExceptionHandler java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 4
ifnull 14
12: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
aload 4
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory
13: astore 1
14: StackMap locals:
StackMap stack:
aload 5
ifnull 19
15: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
aload 5
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast java.lang.Thread$UncaughtExceptionHandler
16: astore 2
end local 5 end local 4 end local 3 17: goto 19
StackMap locals: int java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory java.lang.Thread$UncaughtExceptionHandler
StackMap stack: java.lang.Exception
18: pop
19: StackMap locals:
StackMap stack:
aload 1
ifnonnull 23
20: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnonnull 22
21: getstatic java.util.concurrent.ForkJoinPool.defaultForkJoinWorkerThreadFactory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
astore 1
goto 23
22: StackMap locals:
StackMap stack:
new java.util.concurrent.ForkJoinPool$InnocuousForkJoinWorkerThreadFactory
dup
invokespecial java.util.concurrent.ForkJoinPool$InnocuousForkJoinWorkerThreadFactory.<init>:()V
astore 1
23: StackMap locals:
StackMap stack:
iload 0
ifge 26
24: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
invokevirtual java.lang.Runtime.availableProcessors:()I
iconst_1
isub
dup
istore 0
ifgt 26
25: iconst_1
istore 0
26: StackMap locals:
StackMap stack:
iload 0
sipush 32767
if_icmple 28
27: sipush 32767
istore 0
28: StackMap locals:
StackMap stack:
new java.util.concurrent.ForkJoinPool
dup
iload 0
aload 1
aload 2
iconst_0
29: ldc "ForkJoinPool.commonPool-worker-"
30: invokespecial java.util.concurrent.ForkJoinPool.<init>:(ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;ILjava/lang/String;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 31 0 parallelism I
2 31 1 factory Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
3 31 2 handler Ljava/lang/Thread$UncaughtExceptionHandler;
5 17 3 pp Ljava/lang/String;
7 17 4 fp Ljava/lang/String;
9 17 5 hp Ljava/lang/String;
Exception table:
from to target type
3 17 18 Class java.lang.Exception
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$EmptyTask 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 abstract UncaughtExceptionHandler = java.lang.Thread$UncaughtExceptionHandler of java.lang.Thread
java.util.concurrent.ForkJoinPool$1
final DefaultForkJoinWorkerThreadFactory = java.util.concurrent.ForkJoinPool$DefaultForkJoinWorkerThreadFactory of java.util.concurrent.ForkJoinPool
final EmptyTask = java.util.concurrent.ForkJoinPool$EmptyTask of java.util.concurrent.ForkJoinPool
public abstract ForkJoinWorkerThreadFactory = java.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactory of java.util.concurrent.ForkJoinPool
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
RuntimeVisibleAnnotations:
sun.misc.Contended()