public abstract class java.util.concurrent.ForkJoinTask<V> implements java.util.concurrent.Future<V>, java.io.Serializable
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: java.util.concurrent.ForkJoinTask
super_class: java.lang.Object
{
volatile int status;
descriptor: I
flags: (0x0040) ACC_VOLATILE
static final int DONE_MASK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -268435456
static final int NORMAL;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -268435456
static final int CANCELLED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -1073741824
static final int EXCEPTIONAL;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -2147483648
static final int SIGNAL;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65536
static final int SMASK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65535
private static final java.util.concurrent.ForkJoinTask$ExceptionNode[] exceptionTable;
descriptor: [Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.concurrent.locks.ReentrantLock exceptionTableLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.ref.ReferenceQueue<java.lang.Object> exceptionTableRefQueue;
descriptor: Ljava/lang/ref/ReferenceQueue;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ref/ReferenceQueue<Ljava/lang/Object;>;
private static final int EXCEPTION_MAP_CAPACITY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -7721805057305804111
private static final sun.misc.Unsafe U;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long STATUS;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putstatic java.util.concurrent.ForkJoinTask.exceptionTableLock:Ljava/util/concurrent/locks/ReentrantLock;
1: new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
putstatic java.util.concurrent.ForkJoinTask.exceptionTableRefQueue:Ljava/lang/ref/ReferenceQueue;
2: bipush 32
anewarray java.util.concurrent.ForkJoinTask$ExceptionNode
putstatic java.util.concurrent.ForkJoinTask.exceptionTable:[Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
3: invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
putstatic java.util.concurrent.ForkJoinTask.U:Lsun/misc/Unsafe;
4: ldc Ljava/util/concurrent/ForkJoinTask;
astore 0
start local 0 5: getstatic java.util.concurrent.ForkJoinTask.U:Lsun/misc/Unsafe;
6: aload 0
ldc "status"
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.ForkJoinTask.STATUS:J
end local 0 8: goto 11
StackMap locals:
StackMap stack: java.lang.Exception
9: astore 0
start local 0 10: new java.lang.Error
dup
aload 0
invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 11: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
5 8 0 k Ljava/lang/Class<*>;
10 11 0 e Ljava/lang/Exception;
Exception table:
from to target type
3 8 9 Class java.lang.Exception
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
private int setCompletion(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 2
start local 2 1: ifge 3
2: iload 2
ireturn
3: StackMap locals: int
StackMap stack:
getstatic java.util.concurrent.ForkJoinTask.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinTask.STATUS:J
iload 2
iload 2
iload 1
ior
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
ifeq 0
4: iload 2
bipush 16
iushr
ifeq 10
5: aload 0
dup
astore 3
monitorenter
6: aload 0
invokevirtual java.lang.Object.notifyAll:()V
aload 3
monitorexit
7: goto 10
StackMap locals: java.util.concurrent.ForkJoinTask int int java.util.concurrent.ForkJoinTask
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
10: StackMap locals:
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/ForkJoinTask<TV;>;
0 11 1 completion I
1 11 2 s I
Exception table:
from to target type
6 7 8 any
8 9 8 any
MethodParameters:
Name Flags
completion
final int doExec();
descriptor: ()I
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 1
start local 1 1: iflt 8
2: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.exec:()Z
istore 2
start local 2 3: goto 6
end local 2 StackMap locals: java.util.concurrent.ForkJoinTask int
StackMap stack: java.lang.Throwable
4: astore 3
start local 3 5: aload 0
aload 3
invokevirtual java.util.concurrent.ForkJoinTask.setExceptionalCompletion:(Ljava/lang/Throwable;)I
ireturn
end local 3 start local 2 6: StackMap locals: int
StackMap stack:
iload 2
ifeq 8
7: aload 0
ldc -268435456
invokevirtual java.util.concurrent.ForkJoinTask.setCompletion:(I)I
istore 1
end local 2 8: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 9 1 s I
3 4 2 completed Z
6 8 2 completed Z
5 6 3 rex Ljava/lang/Throwable;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
final void internalWait(long);
descriptor: (J)V
flags: (0x0010) ACC_FINAL
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 3
start local 3 1: iflt 13
2: getstatic java.util.concurrent.ForkJoinTask.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinTask.STATUS:J
iload 3
iload 3
ldc 65536
ior
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
ifeq 13
3: aload 0
dup
astore 4
monitorenter
4: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
iflt 8
5: aload 0
lload 1
invokevirtual java.lang.Object.wait:(J)V
6: goto 9
StackMap locals: java.util.concurrent.ForkJoinTask long int java.util.concurrent.ForkJoinTask
StackMap stack: java.lang.InterruptedException
7: pop
goto 9
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
9: StackMap locals:
StackMap stack:
aload 4
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 4
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 14 1 timeout J
1 14 3 s I
Exception table:
from to target type
5 6 7 Class java.lang.InterruptedException
4 10 11 any
11 12 11 any
MethodParameters:
Name Flags
timeout
private int externalAwaitDone();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=1
start local 0 0: aload 0
instanceof java.util.concurrent.CountedCompleter
ifeq 5
1: getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
2: aload 0
checkcast java.util.concurrent.CountedCompleter
iconst_0
3: invokevirtual java.util.concurrent.ForkJoinPool.externalHelpComplete:(Ljava/util/concurrent/CountedCompleter;I)I
4: goto 7
5: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.tryExternalUnpush:(Ljava/util/concurrent/ForkJoinTask;)Z
ifeq 6
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
goto 7
StackMap locals:
StackMap stack:
6: iconst_0
7: StackMap locals:
StackMap stack: int
istore 1
start local 1 8: iload 1
iflt 27
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 1
iflt 27
9: iconst_0
istore 2
start local 2 10: StackMap locals: int int
StackMap stack:
getstatic java.util.concurrent.ForkJoinTask.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinTask.STATUS:J
iload 1
iload 1
ldc 65536
ior
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
ifeq 23
11: aload 0
dup
astore 3
monitorenter
12: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
iflt 18
13: aload 0
lconst_0
invokevirtual java.lang.Object.wait:(J)V
14: goto 19
StackMap locals: java.util.concurrent.ForkJoinTask int int java.util.concurrent.ForkJoinTask
StackMap stack: java.lang.InterruptedException
15: pop
16: iconst_1
istore 2
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
19: StackMap locals:
StackMap stack:
aload 3
monitorexit
20: goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
21: aload 3
monitorexit
22: athrow
23: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 1
24: ifge 10
25: iload 2
ifeq 27
26: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
end local 2 27: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
8 28 1 s I
10 27 2 interrupted Z
Exception table:
from to target type
13 14 15 Class java.lang.InterruptedException
12 20 21 any
21 22 21 any
private int externalInterruptibleAwaitDone();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=1
start local 0 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
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 1
start local 1 3: iflt 23
4: aload 0
instanceof java.util.concurrent.CountedCompleter
ifeq 9
5: getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
6: aload 0
checkcast java.util.concurrent.CountedCompleter
iconst_0
7: invokevirtual java.util.concurrent.ForkJoinPool.externalHelpComplete:(Ljava/util/concurrent/CountedCompleter;I)I
8: goto 11
9: StackMap locals: int
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.tryExternalUnpush:(Ljava/util/concurrent/ForkJoinTask;)Z
ifeq 10
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
goto 11
10: StackMap locals:
StackMap stack:
iconst_0
11: StackMap locals:
StackMap stack: int
dup
istore 1
iflt 23
12: goto 22
13: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinTask.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinTask.STATUS:J
iload 1
iload 1
ldc 65536
ior
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
ifeq 22
14: aload 0
dup
astore 2
monitorenter
15: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
iflt 17
16: aload 0
lconst_0
invokevirtual java.lang.Object.wait:(J)V
goto 18
17: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
18: StackMap locals:
StackMap stack:
aload 2
monitorexit
19: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
20: aload 2
monitorexit
21: athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 1
ifge 13
23: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
3 24 1 s I
Exception table:
from to target type
15 19 20 any
20 21 20 any
Exceptions:
throws java.lang.InterruptedException
private int doJoin();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 1
start local 1 1: ifge 2
iload 1
goto 9
2: StackMap locals: int
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 2
start local 2 3: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 8
4: aload 2
checkcast java.util.concurrent.ForkJoinWorkerThread
dup
astore 3
start local 3 5: getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 4
start local 4 6: aload 0
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.tryUnpush:(Ljava/util/concurrent/ForkJoinTask;)Z
ifeq 7
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
dup
istore 1
ifge 7
iload 1
goto 9
7: StackMap locals: java.lang.Thread java.util.concurrent.ForkJoinWorkerThread java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 3
getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
aload 4
aload 0
lconst_0
invokevirtual java.util.concurrent.ForkJoinPool.awaitJoin:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;J)I
goto 9
end local 4 end local 3 8: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.externalAwaitDone:()I
end local 2 9: StackMap locals: java.util.concurrent.ForkJoinTask int
StackMap stack: int
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 10 1 s I
3 9 2 t Ljava/lang/Thread;
5 8 3 wt Ljava/util/concurrent/ForkJoinWorkerThread;
6 8 4 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
private int doInvoke();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
dup
istore 1
start local 1 1: ifge 2
iload 1
goto 8
2: StackMap locals: int
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 2
start local 2 3: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 7
4: aload 2
checkcast java.util.concurrent.ForkJoinWorkerThread
dup
astore 3
start local 3 5: getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
6: aload 3
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
aload 0
lconst_0
invokevirtual java.util.concurrent.ForkJoinPool.awaitJoin:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;J)I
goto 8
end local 3 7: StackMap locals: java.lang.Thread
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.externalAwaitDone:()I
end local 2 8: StackMap locals: java.util.concurrent.ForkJoinTask int
StackMap stack: int
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 9 1 s I
3 8 2 t Ljava/lang/Thread;
5 7 3 wt Ljava/util/concurrent/ForkJoinWorkerThread;
final int recordExceptionalCompletion(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)I
flags: (0x0010) ACC_FINAL
Code:
stack=8, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 2
start local 2 1: iflt 20
2: aload 0
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
istore 3
start local 3 3: getstatic java.util.concurrent.ForkJoinTask.exceptionTableLock:Ljava/util/concurrent/locks/ReentrantLock;
astore 4
start local 4 4: aload 4
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
5: invokestatic java.util.concurrent.ForkJoinTask.expungeStaleExceptions:()V
6: getstatic java.util.concurrent.ForkJoinTask.exceptionTable:[Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 5
start local 5 7: iload 3
aload 5
arraylength
iconst_1
isub
iand
istore 6
start local 6 8: aload 5
iload 6
aaload
astore 7
start local 7 9: StackMap locals: java.util.concurrent.ForkJoinTask java.lang.Throwable int int java.util.concurrent.locks.ReentrantLock java.util.concurrent.ForkJoinTask$ExceptionNode[] int java.util.concurrent.ForkJoinTask$ExceptionNode
StackMap stack:
aload 7
ifnonnull 12
10: aload 5
iload 6
new java.util.concurrent.ForkJoinTask$ExceptionNode
dup
aload 0
aload 1
aload 5
iload 6
aaload
invokespecial java.util.concurrent.ForkJoinTask$ExceptionNode.<init>:(Ljava/util/concurrent/ForkJoinTask;Ljava/lang/Throwable;Ljava/util/concurrent/ForkJoinTask$ExceptionNode;)V
aastore
11: goto 18
12: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.util.concurrent.ForkJoinTask$ExceptionNode.get:()Ljava/lang/Object;
aload 0
if_acmpne 14
13: goto 18
14: StackMap locals:
StackMap stack:
aload 7
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 7
goto 9
end local 7 end local 6 end local 5 15: StackMap locals: java.util.concurrent.ForkJoinTask java.lang.Throwable int int java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
astore 8
16: aload 4
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
17: aload 8
athrow
18: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
19: aload 0
ldc -2147483648
invokevirtual java.util.concurrent.ForkJoinTask.setCompletion:(I)I
istore 2
end local 4 end local 3 20: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 21 1 ex Ljava/lang/Throwable;
1 21 2 s I
3 20 3 h I
4 20 4 lock Ljava/util/concurrent/locks/ReentrantLock;
7 15 5 t [Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
8 15 6 i I
9 15 7 e Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
Exception table:
from to target type
5 15 15 any
MethodParameters:
Name Flags
ex
private int setExceptionalCompletion(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinTask.recordExceptionalCompletion:(Ljava/lang/Throwable;)I
istore 2
start local 2 1: iload 2
ldc -268435456
iand
ldc -2147483648
if_icmpne 3
2: aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinTask.internalPropagateException:(Ljava/lang/Throwable;)V
3: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 4 1 ex Ljava/lang/Throwable;
1 4 2 s I
MethodParameters:
Name Flags
ex
void internalPropagateException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 1 1 ex Ljava/lang/Throwable;
MethodParameters:
Name Flags
ex
static final void cancelIgnoringExceptions(java.util.concurrent.ForkJoinTask<?>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;)V
flags: (0x0018) ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnull 4
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
iflt 4
1: aload 0
iconst_0
invokevirtual java.util.concurrent.ForkJoinTask.cancel:(Z)Z
pop
2: goto 4
StackMap locals:
StackMap stack: java.lang.Throwable
3: pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 t Ljava/util/concurrent/ForkJoinTask<*>;
Exception table:
from to target type
1 2 3 Class java.lang.Throwable
Signature: (Ljava/util/concurrent/ForkJoinTask<*>;)V
MethodParameters:
Name Flags
t
private void clearExceptionalCompletion();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=1
start local 0 0: aload 0
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
istore 1
start local 1 1: getstatic java.util.concurrent.ForkJoinTask.exceptionTableLock:Ljava/util/concurrent/locks/ReentrantLock;
astore 2
start local 2 2: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: getstatic java.util.concurrent.ForkJoinTask.exceptionTable:[Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 3
start local 3 4: iload 1
aload 3
arraylength
iconst_1
isub
iand
istore 4
start local 4 5: aload 3
iload 4
aaload
astore 5
start local 5 6: aconst_null
astore 6
start local 6 7: goto 16
8: StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.locks.ReentrantLock java.util.concurrent.ForkJoinTask$ExceptionNode[] int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.ForkJoinTask$ExceptionNode
StackMap stack:
aload 5
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 7
start local 7 9: aload 5
invokevirtual java.util.concurrent.ForkJoinTask$ExceptionNode.get:()Ljava/lang/Object;
aload 0
if_acmpne 14
10: aload 6
ifnonnull 12
11: aload 3
iload 4
aload 7
aastore
goto 17
12: StackMap locals: java.util.concurrent.ForkJoinTask$ExceptionNode
StackMap stack:
aload 6
aload 7
putfield java.util.concurrent.ForkJoinTask$ExceptionNode.next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
13: goto 17
14: StackMap locals:
StackMap stack:
aload 5
astore 6
15: aload 7
astore 5
end local 7 16: StackMap locals:
StackMap stack:
aload 5
ifnonnull 8
17: StackMap locals:
StackMap stack:
invokestatic java.util.concurrent.ForkJoinTask.expungeStaleExceptions:()V
18: aload 0
iconst_0
putfield java.util.concurrent.ForkJoinTask.status:I
end local 6 end local 5 end local 4 end local 3 19: goto 23
StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
20: astore 8
21: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
22: aload 8
athrow
23: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
24: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 25 1 h I
2 25 2 lock Ljava/util/concurrent/locks/ReentrantLock;
4 19 3 t [Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
5 19 4 i I
6 19 5 e Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
7 19 6 pred Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
9 16 7 next Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
Exception table:
from to target type
3 20 20 any
private java.lang.Throwable getThrowableException();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=12, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
ldc -268435456
iand
ldc -2147483648
if_icmpeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
istore 1
start local 1 3: getstatic java.util.concurrent.ForkJoinTask.exceptionTableLock:Ljava/util/concurrent/locks/ReentrantLock;
astore 3
start local 3 4: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
5: invokestatic java.util.concurrent.ForkJoinTask.expungeStaleExceptions:()V
6: getstatic java.util.concurrent.ForkJoinTask.exceptionTable:[Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 4
start local 4 7: aload 4
iload 1
aload 4
arraylength
iconst_1
isub
iand
aaload
astore 2
start local 2 8: goto 10
9: StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.locks.ReentrantLock java.util.concurrent.ForkJoinTask$ExceptionNode[]
StackMap stack:
aload 2
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 2
10: StackMap locals:
StackMap stack:
aload 2
ifnull 15
aload 2
invokevirtual java.util.concurrent.ForkJoinTask$ExceptionNode.get:()Ljava/lang/Object;
aload 0
if_acmpne 9
end local 4 11: goto 15
end local 2 StackMap locals: java.util.concurrent.ForkJoinTask int top java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
12: astore 5
13: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
14: aload 5
athrow
start local 2 15: StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.locks.ReentrantLock
StackMap stack:
aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
16: aload 2
ifnull 18
aload 2
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.ex:Ljava/lang/Throwable;
dup
astore 4
start local 4 17: ifnonnull 19
end local 4 18: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 4 19: StackMap locals: java.lang.Throwable
StackMap stack:
aload 2
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.thrower:J
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getId:()J
lcmp
ifeq 43
20: aload 4
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 5
start local 5 21: aconst_null
astore 6
start local 6 22: aload 5
invokevirtual java.lang.Class.getConstructors:()[Ljava/lang/reflect/Constructor;
astore 7
start local 7 23: iconst_0
istore 8
start local 8 24: goto 35
25: StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.locks.ReentrantLock java.lang.Throwable java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Constructor[] int
StackMap stack:
aload 7
iload 8
aaload
astore 9
start local 9 26: aload 9
invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
astore 10
start local 10 27: aload 10
arraylength
ifne 29
28: aload 9
astore 6
goto 34
29: StackMap locals: java.lang.reflect.Constructor java.lang.Class[]
StackMap stack:
aload 10
arraylength
iconst_1
if_icmpne 34
aload 10
iconst_0
aaload
ldc Ljava/lang/Throwable;
if_acmpne 34
30: aload 9
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Throwable
astore 11
start local 11 31: aload 11
ifnonnull 32
aload 4
goto 33
StackMap locals: java.lang.Throwable
StackMap stack:
32: aload 11
StackMap locals:
StackMap stack: java.lang.Throwable
33: areturn
end local 11 end local 10 end local 9 34: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
35: iload 8
aload 7
arraylength
if_icmplt 25
end local 8 36: aload 6
ifnull 43
37: aload 6
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Throwable
astore 8
start local 8 38: aload 8
ifnull 43
39: aload 8
aload 4
invokevirtual java.lang.Throwable.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
40: aload 8
41: areturn
end local 8 end local 7 end local 6 42: StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.locks.ReentrantLock java.lang.Throwable java.lang.Class
StackMap stack: java.lang.Exception
pop
end local 5 43: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
3 44 1 h I
8 12 2 e Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
15 44 2 e Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
4 44 3 lock Ljava/util/concurrent/locks/ReentrantLock;
7 11 4 t [Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
17 18 4 ex Ljava/lang/Throwable;
19 44 4 ex Ljava/lang/Throwable;
21 43 5 ec Ljava/lang/Class<+Ljava/lang/Throwable;>;
22 42 6 noArgCtor Ljava/lang/reflect/Constructor<*>;
23 42 7 cs [Ljava/lang/reflect/Constructor;
24 36 8 i I
26 34 9 c Ljava/lang/reflect/Constructor<*>;
27 34 10 ps [Ljava/lang/Class;
31 34 11 wx Ljava/lang/Throwable;
38 42 8 wx Ljava/lang/Throwable;
Exception table:
from to target type
5 12 12 any
21 33 42 Class java.lang.Exception
34 41 42 Class java.lang.Exception
private static void expungeStaleExceptions();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=0
0: goto 17
start local 0 1: StackMap locals: java.lang.Object
StackMap stack:
aload 0
instanceof java.util.concurrent.ForkJoinTask$ExceptionNode
ifeq 17
2: aload 0
checkcast java.util.concurrent.ForkJoinTask$ExceptionNode
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.hashCode:I
istore 1
start local 1 3: getstatic java.util.concurrent.ForkJoinTask.exceptionTable:[Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 2
start local 2 4: iload 1
aload 2
arraylength
iconst_1
isub
iand
istore 3
start local 3 5: aload 2
iload 3
aaload
astore 4
start local 4 6: aconst_null
astore 5
start local 5 7: goto 16
8: StackMap locals: java.lang.Object int java.util.concurrent.ForkJoinTask$ExceptionNode[] int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.ForkJoinTask$ExceptionNode
StackMap stack:
aload 4
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 6
start local 6 9: aload 4
aload 0
if_acmpne 14
10: aload 5
ifnonnull 12
11: aload 2
iload 3
aload 6
aastore
goto 17
12: StackMap locals: java.util.concurrent.ForkJoinTask$ExceptionNode
StackMap stack:
aload 5
aload 6
putfield java.util.concurrent.ForkJoinTask$ExceptionNode.next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
13: goto 17
14: StackMap locals:
StackMap stack:
aload 4
astore 5
15: aload 6
astore 4
end local 6 16: StackMap locals:
StackMap stack:
aload 4
ifnonnull 8
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 17: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinTask.exceptionTableRefQueue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
dup
astore 0
start local 0 18: ifnonnull 1
end local 0 19: return
LocalVariableTable:
Start End Slot Name Signature
1 17 0 x Ljava/lang/Object;
18 19 0 x Ljava/lang/Object;
3 17 1 hashCode I
4 17 2 t [Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
5 17 3 i I
6 17 4 e Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
7 17 5 pred Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
9 16 6 next Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
static final void helpExpungeStaleExceptions();
descriptor: ()V
flags: (0x0018) ACC_STATIC, ACC_FINAL
Code:
stack=1, locals=2, args_size=0
0: getstatic java.util.concurrent.ForkJoinTask.exceptionTableLock:Ljava/util/concurrent/locks/ReentrantLock;
astore 0
start local 0 1: aload 0
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
ifeq 8
2: invokestatic java.util.concurrent.ForkJoinTask.expungeStaleExceptions:()V
3: goto 7
StackMap locals: java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
4: astore 1
5: aload 0
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 9 0 lock Ljava/util/concurrent/locks/ReentrantLock;
Exception table:
from to target type
2 4 4 any
static void rethrow(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnull 2
1: aload 0
invokestatic java.util.concurrent.ForkJoinTask.uncheckedThrow:(Ljava/lang/Throwable;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 ex Ljava/lang/Throwable;
MethodParameters:
Name Flags
ex
static <T extends java.lang.Throwable> void uncheckedThrow(java.lang.Throwable) throws T;
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 t Ljava/lang/Throwable;
Exceptions:
throws java.lang.Throwable
Signature: <T:Ljava/lang/Throwable;>(Ljava/lang/Throwable;)V^TT;
MethodParameters:
Name Flags
t
private void reportException(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ldc -1073741824
if_icmpne 2
1: new java.util.concurrent.CancellationException
dup
invokespecial java.util.concurrent.CancellationException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
iload 1
ldc -2147483648
if_icmpne 4
3: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getThrowableException:()Ljava/lang/Throwable;
invokestatic java.util.concurrent.ForkJoinTask.rethrow:(Ljava/lang/Throwable;)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 5 1 s I
MethodParameters:
Name Flags
s
public final java.util.concurrent.ForkJoinTask<V> fork();
descriptor: ()Ljava/util/concurrent/ForkJoinTask;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 1
start local 1 1: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 3
2: aload 1
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.push:(Ljava/util/concurrent/ForkJoinTask;)V
goto 4
3: StackMap locals: java.lang.Thread
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.externalPush:(Ljava/util/concurrent/ForkJoinTask;)V
4: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 5 1 t Ljava/lang/Thread;
Signature: ()Ljava/util/concurrent/ForkJoinTask<TV;>;
public final V join();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doJoin:()I
ldc -268435456
iand
dup
istore 1
start local 1 1: ldc -268435456
if_icmpeq 3
2: aload 0
iload 1
invokevirtual java.util.concurrent.ForkJoinTask.reportException:(I)V
3: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getRawResult:()Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 4 1 s I
Signature: ()TV;
public final V invoke();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doInvoke:()I
ldc -268435456
iand
dup
istore 1
start local 1 1: ldc -268435456
if_icmpeq 3
2: aload 0
iload 1
invokevirtual java.util.concurrent.ForkJoinTask.reportException:(I)V
3: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getRawResult:()Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 4 1 s I
Signature: ()TV;
public static void invokeAll(java.util.concurrent.ForkJoinTask<?>, java.util.concurrent.ForkJoinTask<?>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;Ljava/util/concurrent/ForkJoinTask;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.concurrent.ForkJoinTask.fork:()Ljava/util/concurrent/ForkJoinTask;
pop
1: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doInvoke:()I
ldc -268435456
iand
dup
istore 2
start local 2 2: ldc -268435456
if_icmpeq 4
3: aload 0
iload 2
invokevirtual java.util.concurrent.ForkJoinTask.reportException:(I)V
4: StackMap locals: int
StackMap stack:
aload 1
invokevirtual java.util.concurrent.ForkJoinTask.doJoin:()I
ldc -268435456
iand
dup
istore 3
start local 3 5: ldc -268435456
if_icmpeq 7
6: aload 1
iload 3
invokevirtual java.util.concurrent.ForkJoinTask.reportException:(I)V
7: StackMap locals: int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 t1 Ljava/util/concurrent/ForkJoinTask<*>;
0 8 1 t2 Ljava/util/concurrent/ForkJoinTask<*>;
2 8 2 s1 I
5 8 3 s2 I
Signature: (Ljava/util/concurrent/ForkJoinTask<*>;Ljava/util/concurrent/ForkJoinTask<*>;)V
MethodParameters:
Name Flags
t1
t2
public static void invokeAll(java.util.concurrent.ForkJoinTask<?>[]);
descriptor: ([Ljava/util/concurrent/ForkJoinTask;)V
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=2, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
arraylength
iconst_1
isub
istore 2
start local 2 2: iload 2
istore 3
start local 3 3: goto 14
4: StackMap locals: java.lang.Throwable int int
StackMap stack:
aload 0
iload 3
aaload
astore 4
start local 4 5: aload 4
ifnonnull 9
6: aload 1
ifnonnull 13
7: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
astore 1
8: goto 13
9: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
iload 3
ifeq 11
10: aload 4
invokevirtual java.util.concurrent.ForkJoinTask.fork:()Ljava/util/concurrent/ForkJoinTask;
pop
goto 13
11: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.util.concurrent.ForkJoinTask.doInvoke:()I
ldc -268435456
if_icmpge 13
aload 1
ifnonnull 13
12: aload 4
invokevirtual java.util.concurrent.ForkJoinTask.getException:()Ljava/lang/Throwable;
astore 1
end local 4 13: StackMap locals:
StackMap stack:
iinc 3 -1
StackMap locals:
StackMap stack:
14: iload 3
ifge 4
end local 3 15: iconst_1
istore 3
start local 3 16: goto 24
17: StackMap locals:
StackMap stack:
aload 0
iload 3
aaload
astore 4
start local 4 18: aload 4
ifnull 23
19: aload 1
ifnull 21
20: aload 4
iconst_0
invokevirtual java.util.concurrent.ForkJoinTask.cancel:(Z)Z
pop
goto 23
21: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
aload 4
invokevirtual java.util.concurrent.ForkJoinTask.doJoin:()I
ldc -268435456
if_icmpge 23
22: aload 4
invokevirtual java.util.concurrent.ForkJoinTask.getException:()Ljava/lang/Throwable;
astore 1
end local 4 23: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
24: iload 3
iload 2
if_icmple 17
end local 3 25: aload 1
ifnull 27
26: aload 1
invokestatic java.util.concurrent.ForkJoinTask.rethrow:(Ljava/lang/Throwable;)V
27: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 tasks [Ljava/util/concurrent/ForkJoinTask;
1 28 1 ex Ljava/lang/Throwable;
2 28 2 last I
3 15 3 i I
5 13 4 t Ljava/util/concurrent/ForkJoinTask<*>;
16 25 3 i I
18 23 4 t Ljava/util/concurrent/ForkJoinTask<*>;
Signature: ([Ljava/util/concurrent/ForkJoinTask<*>;)V
MethodParameters:
Name Flags
tasks
public static <T extends java.util.concurrent.ForkJoinTask<?>> java.util.Collection<T> invokeAll(java.util.Collection<T>);
descriptor: (Ljava/util/Collection;)Ljava/util/Collection;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
instanceof java.util.RandomAccess
ifeq 1
aload 0
instanceof java.util.List
ifne 3
1: StackMap locals:
StackMap stack:
aload 0
aload 0
invokeinterface java.util.Collection.size:()I
anewarray java.util.concurrent.ForkJoinTask
invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.util.concurrent.ForkJoinTask[]
invokestatic java.util.concurrent.ForkJoinTask.invokeAll:([Ljava/util/concurrent/ForkJoinTask;)V
2: aload 0
areturn
3: StackMap locals:
StackMap stack:
aload 0
checkcast java.util.List
4: astore 1
start local 1 5: aconst_null
astore 2
start local 2 6: aload 1
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 3
start local 3 7: iload 3
istore 4
start local 4 8: goto 19
9: StackMap locals: java.util.Collection java.util.List java.lang.Throwable int int
StackMap stack:
aload 1
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.concurrent.ForkJoinTask
astore 5
start local 5 10: aload 5
ifnonnull 14
11: aload 2
ifnonnull 18
12: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
astore 2
13: goto 18
14: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
iload 4
ifeq 16
15: aload 5
invokevirtual java.util.concurrent.ForkJoinTask.fork:()Ljava/util/concurrent/ForkJoinTask;
pop
goto 18
16: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.concurrent.ForkJoinTask.doInvoke:()I
ldc -268435456
if_icmpge 18
aload 2
ifnonnull 18
17: aload 5
invokevirtual java.util.concurrent.ForkJoinTask.getException:()Ljava/lang/Throwable;
astore 2
end local 5 18: StackMap locals:
StackMap stack:
iinc 4 -1
StackMap locals:
StackMap stack:
19: iload 4
ifge 9
end local 4 20: iconst_1
istore 4
start local 4 21: goto 29
22: StackMap locals:
StackMap stack:
aload 1
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.concurrent.ForkJoinTask
astore 5
start local 5 23: aload 5
ifnull 28
24: aload 2
ifnull 26
25: aload 5
iconst_0
invokevirtual java.util.concurrent.ForkJoinTask.cancel:(Z)Z
pop
goto 28
26: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
aload 5
invokevirtual java.util.concurrent.ForkJoinTask.doJoin:()I
ldc -268435456
if_icmpge 28
27: aload 5
invokevirtual java.util.concurrent.ForkJoinTask.getException:()Ljava/lang/Throwable;
astore 2
end local 5 28: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
29: iload 4
iload 3
if_icmple 22
end local 4 30: aload 2
ifnull 32
31: aload 2
invokestatic java.util.concurrent.ForkJoinTask.rethrow:(Ljava/lang/Throwable;)V
32: StackMap locals:
StackMap stack:
aload 0
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 tasks Ljava/util/Collection<TT;>;
5 33 1 ts Ljava/util/List<+Ljava/util/concurrent/ForkJoinTask<*>;>;
6 33 2 ex Ljava/lang/Throwable;
7 33 3 last I
8 20 4 i I
10 18 5 t Ljava/util/concurrent/ForkJoinTask<*>;
21 30 4 i I
23 28 5 t Ljava/util/concurrent/ForkJoinTask<*>;
Signature: <T:Ljava/util/concurrent/ForkJoinTask<*>;>(Ljava/util/Collection<TT;>;)Ljava/util/Collection<TT;>;
MethodParameters:
Name Flags
tasks
public boolean cancel(boolean);
descriptor: (Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc -1073741824
invokevirtual java.util.concurrent.ForkJoinTask.setCompletion:(I)I
ldc -268435456
iand
ldc -1073741824
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 2 1 mayInterruptIfRunning Z
MethodParameters:
Name Flags
mayInterruptIfRunning
public final boolean isDone();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
ifge 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/ForkJoinTask<TV;>;
public final boolean isCancelled();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
ldc -268435456
iand
ldc -1073741824
if_icmpne 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/ForkJoinTask<TV;>;
public final boolean isCompletedAbnormally();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
ldc -268435456
if_icmpge 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/ForkJoinTask<TV;>;
public final boolean isCompletedNormally();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
ldc -268435456
iand
ldc -268435456
if_icmpne 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/ForkJoinTask<TV;>;
public final java.lang.Throwable getException();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
ldc -268435456
iand
istore 1
start local 1 1: iload 1
ldc -268435456
if_icmplt 2
aconst_null
goto 4
2: StackMap locals: int
StackMap stack:
iload 1
ldc -1073741824
if_icmpne 3
new java.util.concurrent.CancellationException
dup
invokespecial java.util.concurrent.CancellationException.<init>:()V
goto 4
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getThrowableException:()Ljava/lang/Throwable;
4: StackMap locals:
StackMap stack: java.lang.Throwable
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 5 1 s I
public void completeExceptionally(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
instanceof java.lang.RuntimeException
ifne 2
1: aload 1
instanceof java.lang.Error
ifeq 3
StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinTask
2: aload 1
goto 4
3: StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinTask
new java.lang.RuntimeException
dup
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
4: StackMap locals: java.util.concurrent.ForkJoinTask java.lang.Throwable
StackMap stack: java.util.concurrent.ForkJoinTask java.lang.Throwable
invokevirtual java.util.concurrent.ForkJoinTask.setExceptionalCompletion:(Ljava/lang/Throwable;)I
pop
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 6 1 ex Ljava/lang/Throwable;
MethodParameters:
Name Flags
ex
public void complete();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinTask.setRawResult:(Ljava/lang/Object;)V
1: goto 5
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 2
start local 2 3: aload 0
aload 2
invokevirtual java.util.concurrent.ForkJoinTask.setExceptionalCompletion:(Ljava/lang/Throwable;)I
pop
4: return
end local 2 5: StackMap locals:
StackMap stack:
aload 0
ldc -268435456
invokevirtual java.util.concurrent.ForkJoinTask.setCompletion:(I)I
pop
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 7 1 value TV;
3 5 2 rex Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
Signature: (TV;)V
MethodParameters:
Name Flags
value
public final void quietlyComplete();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc -268435456
invokevirtual java.util.concurrent.ForkJoinTask.setCompletion:(I)I
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
public final V get();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=3, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 2
1: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doJoin:()I
goto 3
StackMap locals:
StackMap stack:
2: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.externalInterruptibleAwaitDone:()I
3: StackMap locals:
StackMap stack: int
istore 1
start local 1 4: iload 1
ldc -268435456
iand
dup
istore 1
ldc -1073741824
if_icmpne 6
5: new java.util.concurrent.CancellationException
dup
invokespecial java.util.concurrent.CancellationException.<init>:()V
athrow
6: StackMap locals: int
StackMap stack:
iload 1
ldc -2147483648
if_icmpne 9
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getThrowableException:()Ljava/lang/Throwable;
dup
astore 2
start local 2 7: ifnull 9
8: new java.util.concurrent.ExecutionException
dup
aload 2
invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 9: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getRawResult:()Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
4 10 1 s I
7 9 2 ex Ljava/lang/Throwable;
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
Signature: ()TV;
public final V get(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=7, locals=17, 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 5
start local 5 1: invokestatic java.lang.Thread.interrupted:()Z
ifeq 3
2: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
3: StackMap locals: java.util.concurrent.ForkJoinTask long java.util.concurrent.TimeUnit top long
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 4
start local 4 4: iflt 39
lload 5
lconst_0
lcmp
ifle 39
5: invokestatic java.lang.System.nanoTime:()J
lload 5
ladd
lstore 7
start local 7 6: lload 7
lconst_0
lcmp
ifne 7
lconst_1
goto 8
StackMap locals: java.util.concurrent.ForkJoinTask long java.util.concurrent.TimeUnit int long long
StackMap stack:
7: lload 7
StackMap locals:
StackMap stack: long
8: lstore 9
start local 9 9: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 11
start local 11 10: aload 11
instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 14
11: aload 11
checkcast java.util.concurrent.ForkJoinWorkerThread
astore 12
start local 12 12: aload 12
getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
aload 12
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
aload 0
lload 9
invokevirtual java.util.concurrent.ForkJoinPool.awaitJoin:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;J)I
istore 4
end local 12 13: goto 39
14: StackMap locals: long java.lang.Thread
StackMap stack:
aload 0
instanceof java.util.concurrent.CountedCompleter
ifeq 19
15: getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
16: aload 0
checkcast java.util.concurrent.CountedCompleter
iconst_0
17: invokevirtual java.util.concurrent.ForkJoinPool.externalHelpComplete:(Ljava/util/concurrent/CountedCompleter;I)I
18: goto 22
19: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.tryExternalUnpush:(Ljava/util/concurrent/ForkJoinTask;)Z
ifeq 21
20: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
goto 22
StackMap locals:
StackMap stack:
21: iconst_0
22: StackMap locals:
StackMap stack: int
dup
istore 4
iflt 39
23: goto 35
start local 12 24: StackMap locals: long
StackMap stack:
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 12
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
dup2
lstore 14
start local 14 25: lconst_0
lcmp
ifle 35
26: getstatic java.util.concurrent.ForkJoinTask.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinTask.STATUS:J
iload 4
iload 4
ldc 65536
ior
invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
ifeq 35
27: aload 0
dup
astore 16
monitorenter
28: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
iflt 30
29: aload 0
lload 14
invokevirtual java.lang.Object.wait:(J)V
goto 31
30: StackMap locals: long java.util.concurrent.ForkJoinTask
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
31: StackMap locals:
StackMap stack:
aload 16
monitorexit
32: goto 35
StackMap locals:
StackMap stack: java.lang.Throwable
33: aload 16
monitorexit
34: athrow
end local 14 end local 12 35: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 4
iflt 39
36: lload 9
invokestatic java.lang.System.nanoTime:()J
lsub
dup2
lstore 12
start local 12 37: lconst_0
38: lcmp
ifgt 24
end local 12 end local 11 end local 9 end local 7 39: StackMap locals:
StackMap stack:
iload 4
iflt 41
40: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
istore 4
41: StackMap locals:
StackMap stack:
iload 4
ldc -268435456
iand
dup
istore 4
ldc -268435456
if_icmpeq 49
42: iload 4
ldc -1073741824
if_icmpne 44
43: new java.util.concurrent.CancellationException
dup
invokespecial java.util.concurrent.CancellationException.<init>:()V
athrow
44: StackMap locals:
StackMap stack:
iload 4
ldc -2147483648
if_icmpeq 46
45: new java.util.concurrent.TimeoutException
dup
invokespecial java.util.concurrent.TimeoutException.<init>:()V
athrow
46: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getThrowableException:()Ljava/lang/Throwable;
dup
astore 7
start local 7 47: ifnull 49
48: new java.util.concurrent.ExecutionException
dup
aload 7
invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 7 49: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getRawResult:()Ljava/lang/Object;
areturn
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 50 1 timeout J
0 50 3 unit Ljava/util/concurrent/TimeUnit;
4 50 4 s I
1 50 5 nanos J
6 39 7 d J
9 39 9 deadline J
10 39 11 t Ljava/lang/Thread;
12 13 12 wt Ljava/util/concurrent/ForkJoinWorkerThread;
24 35 12 ns J
37 39 12 ns J
25 35 14 ms J
47 49 7 ex Ljava/lang/Throwable;
Exception table:
from to target type
28 32 33 any
33 34 33 any
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
Signature: (JLjava/util/concurrent/TimeUnit;)TV;
MethodParameters:
Name Flags
timeout
unit
public final void quietlyJoin();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doJoin:()I
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
public final void quietlyInvoke();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doInvoke:()I
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
public static void helpQuiesce();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, 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 5
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
astore 1
start local 1 3: aload 1
getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
aload 1
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
invokevirtual java.util.concurrent.ForkJoinPool.helpQuiescePool:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
end local 1 4: goto 6
5: StackMap locals: java.lang.Thread
StackMap stack:
invokestatic java.util.concurrent.ForkJoinPool.quiesceCommonPool:()V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 7 0 t Ljava/lang/Thread;
3 4 1 wt Ljava/util/concurrent/ForkJoinWorkerThread;
public void reinitialize();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
ldc -268435456
iand
ldc -2147483648
if_icmpne 2
1: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.clearExceptionalCompletion:()V
goto 3
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield java.util.concurrent.ForkJoinTask.status:I
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
public static java.util.concurrent.ForkJoinPool getPool();
descriptor: ()Ljava/util/concurrent/ForkJoinPool;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 0
start local 0 1: aload 0
instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 3
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
goto 4
StackMap locals: java.lang.Thread
StackMap stack:
3: aconst_null
4: StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinPool
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 5 0 t Ljava/lang/Thread;
public static boolean inForkJoinPool();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
instanceof java.util.concurrent.ForkJoinWorkerThread
ireturn
LocalVariableTable:
Start End Slot Name Signature
public boolean tryUnfork();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 1
start local 1 1: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 3
2: aload 1
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.tryUnpush:(Ljava/util/concurrent/ForkJoinTask;)Z
goto 4
3: StackMap locals: java.lang.Thread
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.tryExternalUnpush:(Ljava/util/concurrent/ForkJoinTask;)Z
4: StackMap locals:
StackMap stack: int
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 5 1 t Ljava/lang/Thread;
public static int getQueuedTaskCount();
descriptor: ()I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, 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 4
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 1
start local 1 3: goto 5
end local 1 4: StackMap locals: java.lang.Thread
StackMap stack:
invokestatic java.util.concurrent.ForkJoinPool.commonSubmitterQueue:()Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 1
start local 1 5: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 1
ifnonnull 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.queueSize:()I
StackMap locals:
StackMap stack: int
7: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 8 0 t Ljava/lang/Thread;
3 4 1 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
5 8 1 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
public static int getSurplusQueuedTaskCount();
descriptor: ()I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic java.util.concurrent.ForkJoinPool.getSurplusQueuedTaskCount:()I
ireturn
LocalVariableTable:
Start End Slot Name Signature
public abstract V getRawResult();
descriptor: ()Ljava/lang/Object;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Signature: ()TV;
protected abstract void setRawResult();
descriptor: (Ljava/lang/Object;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (TV;)V
MethodParameters:
Name Flags
value
protected abstract boolean exec();
descriptor: ()Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected static java.util.concurrent.ForkJoinTask<?> peekNextLocalTask();
descriptor: ()Ljava/util/concurrent/ForkJoinTask;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, 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 4
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 1
start local 1 3: goto 5
end local 1 4: StackMap locals: java.lang.Thread
StackMap stack:
invokestatic java.util.concurrent.ForkJoinPool.commonSubmitterQueue:()Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 1
start local 1 5: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 1
ifnonnull 6
aconst_null
goto 7
StackMap locals:
StackMap stack:
6: aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.peek:()Ljava/util/concurrent/ForkJoinTask;
StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinTask
7: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 8 0 t Ljava/lang/Thread;
3 4 1 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
5 8 1 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
Signature: ()Ljava/util/concurrent/ForkJoinTask<*>;
protected static java.util.concurrent.ForkJoinTask<?> pollNextLocalTask();
descriptor: ()Ljava/util/concurrent/ForkJoinTask;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=1, 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 3
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.nextLocalTask:()Ljava/util/concurrent/ForkJoinTask;
goto 4
3: StackMap locals: java.lang.Thread
StackMap stack:
aconst_null
4: StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinTask
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 5 0 t Ljava/lang/Thread;
Signature: ()Ljava/util/concurrent/ForkJoinTask<*>;
protected static java.util.concurrent.ForkJoinTask<?> pollTask();
descriptor: ()Ljava/util/concurrent/ForkJoinTask;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, 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 4
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;
aload 1
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
invokevirtual java.util.concurrent.ForkJoinPool.nextTaskFor:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Ljava/util/concurrent/ForkJoinTask;
goto 5
end local 1 4: StackMap locals: java.lang.Thread
StackMap stack:
aconst_null
5: StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinTask
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 6 0 t Ljava/lang/Thread;
3 4 1 wt Ljava/util/concurrent/ForkJoinWorkerThread;
Signature: ()Ljava/util/concurrent/ForkJoinTask<*>;
public final short getForkJoinTaskTag();
descriptor: ()S
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
i2s
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
public final short setForkJoinTaskTag(short);
descriptor: (S)S
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinTask.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinTask.STATUS:J
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 2
start local 2 1: iload 2
ldc -65536
iand
iload 1
ldc 65535
iand
ior
2: invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
3: ifeq 0
4: iload 2
i2s
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 5 1 tag S
1 5 2 s I
MethodParameters:
Name Flags
tag
public final boolean compareAndSetForkJoinTaskTag(short, short);
descriptor: (SS)Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 2 0: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 3
start local 3 1: i2s
iload 1
if_icmpeq 3
2: iconst_0
ireturn
3: StackMap locals: int
StackMap stack:
getstatic java.util.concurrent.ForkJoinTask.U:Lsun/misc/Unsafe;
aload 0
getstatic java.util.concurrent.ForkJoinTask.STATUS:J
iload 3
4: iload 3
ldc -65536
iand
iload 2
ldc 65535
iand
ior
5: invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
6: ifeq 0
7: iconst_1
ireturn
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/ForkJoinTask<TV;>;
0 8 1 e S
0 8 2 tag S
1 8 3 s I
MethodParameters:
Name Flags
e
tag
public static java.util.concurrent.ForkJoinTask<?> adapt(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.util.concurrent.ForkJoinTask$AdaptedRunnableAction
dup
aload 0
invokespecial java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.<init>:(Ljava/lang/Runnable;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runnable Ljava/lang/Runnable;
Signature: (Ljava/lang/Runnable;)Ljava/util/concurrent/ForkJoinTask<*>;
MethodParameters:
Name Flags
runnable
public static <T> java.util.concurrent.ForkJoinTask<T> adapt(java.lang.Runnable, T);
descriptor: (Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new java.util.concurrent.ForkJoinTask$AdaptedRunnable
dup
aload 0
aload 1
invokespecial java.util.concurrent.ForkJoinTask$AdaptedRunnable.<init>:(Ljava/lang/Runnable;Ljava/lang/Object;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runnable Ljava/lang/Runnable;
0 1 1 result TT;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Runnable;TT;)Ljava/util/concurrent/ForkJoinTask<TT;>;
MethodParameters:
Name Flags
runnable
result
public static <T> java.util.concurrent.ForkJoinTask<T> adapt(java.util.concurrent.Callable<? extends T>);
descriptor: (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.util.concurrent.ForkJoinTask$AdaptedCallable
dup
aload 0
invokespecial java.util.concurrent.ForkJoinTask$AdaptedCallable.<init>:(Ljava/util/concurrent/Callable;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 callable Ljava/util/concurrent/Callable<+TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<+TT;>;)Ljava/util/concurrent/ForkJoinTask<TT;>;
MethodParameters:
Name Flags
callable
private void writeObject(java.io.ObjectOutputStream);
descriptor: (Ljava/io/ObjectOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
1: aload 1
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getException:()Ljava/lang/Throwable;
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 3 1 s Ljava/io/ObjectOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
private void readObject(java.io.ObjectInputStream);
descriptor: (Ljava/io/ObjectInputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
1: aload 1
invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
astore 2
start local 2 2: aload 2
ifnull 4
3: aload 0
aload 2
checkcast java.lang.Throwable
invokevirtual java.util.concurrent.ForkJoinTask.setExceptionalCompletion:(Ljava/lang/Throwable;)I
pop
4: StackMap locals: java.lang.Object
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 5 1 s Ljava/io/ObjectInputStream;
2 5 2 ex Ljava/lang/Object;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
MethodParameters:
Name Flags
s
}
Signature: <V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/Future<TV;>;Ljava/io/Serializable;
SourceFile: "ForkJoinTask.java"
NestMembers:
java.util.concurrent.ForkJoinTask$AdaptedCallable java.util.concurrent.ForkJoinTask$AdaptedRunnable java.util.concurrent.ForkJoinTask$AdaptedRunnableAction java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.ForkJoinTask$RunnableExecuteAction
InnerClasses:
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 ExceptionNode = java.util.concurrent.ForkJoinTask$ExceptionNode of java.util.concurrent.ForkJoinTask
final RunnableExecuteAction = java.util.concurrent.ForkJoinTask$RunnableExecuteAction of java.util.concurrent.ForkJoinTask