final class org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask<K, V, U> extends org.ehcache.impl.internal.concurrent.ConcurrentHashMap$BulkTask<K, V, U>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask
super_class: org.ehcache.impl.internal.concurrent.ConcurrentHashMap$BulkTask
{
final java.util.function.BiFunction<? super K, ? super V, ? extends U> searchFunction;
descriptor: Ljava/util/function/BiFunction;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/BiFunction<-TK;-TV;+TU;>;
final java.util.concurrent.atomic.AtomicReference<U> result;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<TU;>;
void <init>(org.ehcache.impl.internal.concurrent.ConcurrentHashMap$BulkTask<K, V, ?>, int, int, int, org.ehcache.impl.internal.concurrent.ConcurrentHashMap$Node<K, V>[], java.util.function.BiFunction<? super K, ? super V, ? extends U>, java.util.concurrent.atomic.AtomicReference<U>);
descriptor: (Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$BulkTask;III[Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$Node;Ljava/util/function/BiFunction;Ljava/util/concurrent/atomic/AtomicReference;)V
flags: (0x0000)
Code:
stack=6, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
aload 1
iload 2
iload 3
iload 4
aload 5
invokespecial org.ehcache.impl.internal.concurrent.ConcurrentHashMap$BulkTask.<init>:(Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$BulkTask;III[Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$Node;)V
1: aload 0
aload 6
putfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.searchFunction:Ljava/util/function/BiFunction;
aload 0
aload 7
putfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.result:Ljava/util/concurrent/atomic/AtomicReference;
2: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$SearchMappingsTask<TK;TV;TU;>;
0 3 1 p Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$BulkTask<TK;TV;*>;
0 3 2 b I
0 3 3 i I
0 3 4 f I
0 3 5 t [Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$Node;
0 3 6 searchFunction Ljava/util/function/BiFunction<-TK;-TV;+TU;>;
0 3 7 result Ljava/util/concurrent/atomic/AtomicReference<TU;>;
Signature: (Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$BulkTask<TK;TV;*>;III[Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$Node<TK;TV;>;Ljava/util/function/BiFunction<-TK;-TV;+TU;>;Ljava/util/concurrent/atomic/AtomicReference<TU;>;)V
MethodParameters:
Name Flags
p
b
i
f
t
searchFunction
result
public final U getRawResult();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.result:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$SearchMappingsTask<TK;TV;TU;>;
Signature: ()TU;
public final void compute();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=9, locals=6, args_size=1
start local 0 0: aload 0
getfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.searchFunction:Ljava/util/function/BiFunction;
dup
astore 1
start local 1 1: ifnull 30
2: aload 0
getfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.result:Ljava/util/concurrent/atomic/AtomicReference;
dup
astore 2
start local 2 3: ifnull 30
4: aload 0
getfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.baseIndex:I
istore 3
start local 3 5: goto 14
start local 4 start local 5 6: StackMap locals: org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask java.util.function.BiFunction java.util.concurrent.atomic.AtomicReference int int int
StackMap stack:
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
ifnull 8
7: return
8: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.addToPendingCount:(I)V
9: new org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask
dup
10: aload 0
aload 0
dup
getfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.batch:I
iconst_1
iushr
dup_x1
putfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.batch:I
aload 0
iload 5
dup_x1
putfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.baseLimit:I
iload 4
aload 0
getfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.tab:[Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$Node;
11: aload 1
aload 2
12: invokespecial org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.<init>:(Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$BulkTask;III[Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$Node;Ljava/util/function/BiFunction;Ljava/util/concurrent/atomic/AtomicReference;)V
13: invokevirtual org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.fork:()Ljava/util/concurrent/ForkJoinTask;
pop
end local 5 end local 4 14: StackMap locals:
StackMap stack:
aload 0
getfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.batch:I
ifle 29
15: aload 0
getfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.baseLimit:I
dup
istore 4
start local 4 16: iload 3
iadd
iconst_1
iushr
dup
istore 5
start local 5 17: iload 3
18: if_icmpgt 6
end local 5 end local 4 end local 3 19: goto 29
20: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.advance:()Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$Node;
dup
astore 4
start local 4 21: ifnonnull 24
22: aload 0
invokevirtual org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.propagateCompletion:()V
23: goto 30
24: StackMap locals: org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask java.util.function.BiFunction java.util.concurrent.atomic.AtomicReference top org.ehcache.impl.internal.concurrent.ConcurrentHashMap$Node
StackMap stack:
aload 1
aload 4
getfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$Node.key:Ljava/lang/Object;
aload 4
getfield org.ehcache.impl.internal.concurrent.ConcurrentHashMap$Node.val:Ljava/lang/Object;
invokeinterface java.util.function.BiFunction.apply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
dup
astore 3
start local 3 25: ifnull 29
26: aload 2
aconst_null
aload 3
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 30
27: aload 0
invokevirtual org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask.quietlyCompleteRoot:()V
28: goto 30
end local 4 end local 3 29: StackMap locals: org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask java.util.function.BiFunction java.util.concurrent.atomic.AtomicReference
StackMap stack:
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
ifnull 20
end local 2 30: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$SearchMappingsTask<TK;TV;TU;>;
1 31 1 searchFunction Ljava/util/function/BiFunction<-TK;-TV;+TU;>;
3 30 2 result Ljava/util/concurrent/atomic/AtomicReference<TU;>;
5 19 3 i I
6 14 4 f I
16 19 4 f I
6 14 5 h I
17 19 5 h I
25 29 3 u TU;
21 29 4 p Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$Node<TK;TV;>;
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;U:Ljava/lang/Object;>Lorg/ehcache/impl/internal/concurrent/ConcurrentHashMap$BulkTask<TK;TV;TU;>;
SourceFile: "ConcurrentHashMap.java"
NestHost: org.ehcache.impl.internal.concurrent.ConcurrentHashMap
InnerClasses:
abstract BulkTask = org.ehcache.impl.internal.concurrent.ConcurrentHashMap$BulkTask of org.ehcache.impl.internal.concurrent.ConcurrentHashMap
Node = org.ehcache.impl.internal.concurrent.ConcurrentHashMap$Node of org.ehcache.impl.internal.concurrent.ConcurrentHashMap
final SearchMappingsTask = org.ehcache.impl.internal.concurrent.ConcurrentHashMap$SearchMappingsTask of org.ehcache.impl.internal.concurrent.ConcurrentHashMap