abstract class java.util.concurrent.atomic.Striped64 extends java.lang.Number
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: java.util.concurrent.atomic.Striped64
super_class: java.lang.Number
{
static final int NCPU;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
volatile transient java.util.concurrent.atomic.Striped64$Cell[] cells;
descriptor: [Ljava/util/concurrent/atomic/Striped64$Cell;
flags: (0x00c0) ACC_VOLATILE, ACC_TRANSIENT
volatile transient long base;
descriptor: J
flags: (0x00c0) ACC_VOLATILE, ACC_TRANSIENT
volatile transient int cellsBusy;
descriptor: I
flags: (0x00c0) ACC_VOLATILE, ACC_TRANSIENT
private static final java.lang.invoke.VarHandle BASE;
descriptor: Ljava/lang/invoke/VarHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.VarHandle CELLSBUSY;
descriptor: Ljava/lang/invoke/VarHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.VarHandle THREAD_PROBE;
descriptor: Ljava/lang/invoke/VarHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
invokevirtual java.lang.Runtime.availableProcessors:()I
putstatic java.util.concurrent.atomic.Striped64.NCPU:I
1: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
astore 0
start local 0 2: aload 0
ldc Ljava/util/concurrent/atomic/Striped64;
3: ldc "base"
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
4: invokevirtual java.lang.invoke.MethodHandles$Lookup.findVarHandle:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
putstatic java.util.concurrent.atomic.Striped64.BASE:Ljava/lang/invoke/VarHandle;
5: aload 0
ldc Ljava/util/concurrent/atomic/Striped64;
6: ldc "cellsBusy"
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
7: invokevirtual java.lang.invoke.MethodHandles$Lookup.findVarHandle:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
putstatic java.util.concurrent.atomic.Striped64.CELLSBUSY:Ljava/lang/invoke/VarHandle;
8: new java.util.concurrent.atomic.Striped64$1
dup
invokespecial java.util.concurrent.atomic.Striped64$1.<init>:()V
9: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandles$Lookup
astore 0
10: aload 0
ldc Ljava/lang/Thread;
11: ldc "threadLocalRandomProbe"
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
12: invokevirtual java.lang.invoke.MethodHandles$Lookup.findVarHandle:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
putstatic java.util.concurrent.atomic.Striped64.THREAD_PROBE:Ljava/lang/invoke/VarHandle;
end local 0 13: goto 16
StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
14: astore 0
start local 0 15: new java.lang.ExceptionInInitializerError
dup
aload 0
invokespecial java.lang.ExceptionInInitializerError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 16: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
2 13 0 l Ljava/lang/invoke/MethodHandles$Lookup;
15 16 0 e Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
1 13 14 Class java.lang.ReflectiveOperationException
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/atomic/Striped64;
final boolean casBase(long, long);
descriptor: (JJ)Z
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 3 0: getstatic java.util.concurrent.atomic.Striped64.BASE:Ljava/lang/invoke/VarHandle;
aload 0
lload 1
lload 3
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Ljava/util/concurrent/atomic/Striped64;JJ)Z
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/atomic/Striped64;
0 1 1 cmp J
0 1 3 val J
MethodParameters:
Name Flags
cmp
val
final long getAndSetBase(long);
descriptor: (J)J
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic java.util.concurrent.atomic.Striped64.BASE:Ljava/lang/invoke/VarHandle;
aload 0
lload 1
invokevirtual java.lang.invoke.VarHandle.getAndSet:(Ljava/util/concurrent/atomic/Striped64;J)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/atomic/Striped64;
0 1 1 val J
MethodParameters:
Name Flags
val
final boolean casCellsBusy();
descriptor: ()Z
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic java.util.concurrent.atomic.Striped64.CELLSBUSY:Ljava/lang/invoke/VarHandle;
aload 0
iconst_0
iconst_1
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Ljava/util/concurrent/atomic/Striped64;II)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/atomic/Striped64;
static final int getProbe();
descriptor: ()I
flags: (0x0018) ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=0, args_size=0
0: getstatic java.util.concurrent.atomic.Striped64.THREAD_PROBE:Ljava/lang/invoke/VarHandle;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.invoke.VarHandle.get:(Ljava/lang/Thread;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
static final int advanceProbe(int);
descriptor: (I)I
flags: (0x0018) ACC_STATIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: iload 0
iload 0
bipush 13
ishl
ixor
istore 0
1: iload 0
iload 0
bipush 17
iushr
ixor
istore 0
2: iload 0
iload 0
iconst_5
ishl
ixor
istore 0
3: getstatic java.util.concurrent.atomic.Striped64.THREAD_PROBE:Ljava/lang/invoke/VarHandle;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
iload 0
invokevirtual java.lang.invoke.VarHandle.set:(Ljava/lang/Thread;I)V
4: iload 0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 probe I
MethodParameters:
Name Flags
probe
final void longAccumulate(long, java.util.function.LongBinaryOperator, boolean);
descriptor: (JLjava/util/function/LongBinaryOperator;Z)V
flags: (0x0010) ACC_FINAL
Code:
stack=8, locals=17, args_size=4
start local 0 start local 1 start local 3 start local 4 0: invokestatic java.util.concurrent.atomic.Striped64.getProbe:()I
dup
istore 5
start local 5 1: ifne 5
2: invokestatic java.util.concurrent.ThreadLocalRandom.current:()Ljava/util/concurrent/ThreadLocalRandom;
pop
3: invokestatic java.util.concurrent.atomic.Striped64.getProbe:()I
istore 5
4: iconst_1
istore 4
5: StackMap locals: int
StackMap stack:
iconst_0
istore 6
start local 6 6: StackMap locals: int
StackMap stack:
aload 0
getfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
dup
astore 7
start local 7 7: ifnull 54
aload 7
arraylength
dup
istore 9
start local 9 8: ifle 54
9: aload 7
iload 9
iconst_1
isub
iload 5
iand
aaload
dup
astore 8
start local 8 10: ifnonnull 30
11: aload 0
getfield java.util.concurrent.atomic.Striped64.cellsBusy:I
ifne 28
12: new java.util.concurrent.atomic.Striped64$Cell
dup
lload 1
invokespecial java.util.concurrent.atomic.Striped64$Cell.<init>:(J)V
astore 12
start local 12 13: aload 0
getfield java.util.concurrent.atomic.Striped64.cellsBusy:I
ifne 28
aload 0
invokevirtual java.util.concurrent.atomic.Striped64.casCellsBusy:()Z
ifeq 28
14: aload 0
getfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
dup
astore 13
start local 13 15: ifnull 26
16: aload 13
arraylength
dup
istore 14
start local 14 17: ifle 26
18: aload 13
iload 14
iconst_1
isub
iload 5
iand
dup
istore 15
start local 15 19: aaload
ifnonnull 26
20: aload 13
iload 15
aload 12
aastore
21: aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
22: goto 71
end local 15 end local 14 end local 13 23: StackMap locals: java.util.concurrent.atomic.Striped64 long java.util.function.LongBinaryOperator int int int java.util.concurrent.atomic.Striped64$Cell[] java.util.concurrent.atomic.Striped64$Cell int top top java.util.concurrent.atomic.Striped64$Cell
StackMap stack: java.lang.Throwable
astore 16
24: aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
25: aload 16
athrow
26: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
27: goto 6
end local 12 28: StackMap locals: java.util.concurrent.atomic.Striped64 long java.util.function.LongBinaryOperator int int int java.util.concurrent.atomic.Striped64$Cell[] java.util.concurrent.atomic.Striped64$Cell int
StackMap stack:
iconst_0
istore 6
29: goto 52
30: StackMap locals:
StackMap stack:
iload 4
ifne 32
31: iconst_1
istore 4
goto 52
32: StackMap locals:
StackMap stack:
aload 8
aload 8
getfield java.util.concurrent.atomic.Striped64$Cell.value:J
dup2
lstore 10
start local 10 33: aload 3
ifnonnull 34
lload 10
lload 1
ladd
goto 35
StackMap locals: java.util.concurrent.atomic.Striped64 long java.util.function.LongBinaryOperator int int int java.util.concurrent.atomic.Striped64$Cell[] java.util.concurrent.atomic.Striped64$Cell int long
StackMap stack: java.util.concurrent.atomic.Striped64$Cell long
34: aload 3
lload 10
lload 1
invokeinterface java.util.function.LongBinaryOperator.applyAsLong:(JJ)J
35: StackMap locals: java.util.concurrent.atomic.Striped64 long java.util.function.LongBinaryOperator int int int java.util.concurrent.atomic.Striped64$Cell[] java.util.concurrent.atomic.Striped64$Cell int long
StackMap stack: java.util.concurrent.atomic.Striped64$Cell long long
invokevirtual java.util.concurrent.atomic.Striped64$Cell.cas:(JJ)Z
36: ifeq 38
37: goto 71
38: StackMap locals:
StackMap stack:
iload 9
getstatic java.util.concurrent.atomic.Striped64.NCPU:I
if_icmpge 39
aload 0
getfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
aload 7
if_acmpeq 40
39: StackMap locals:
StackMap stack:
iconst_0
istore 6
goto 52
40: StackMap locals:
StackMap stack:
iload 6
ifne 42
41: iconst_1
istore 6
goto 52
42: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.atomic.Striped64.cellsBusy:I
ifne 52
aload 0
invokevirtual java.util.concurrent.atomic.Striped64.casCellsBusy:()Z
ifeq 52
43: aload 0
getfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
aload 7
if_acmpne 49
44: aload 0
aload 7
iload 9
iconst_1
ishl
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.util.concurrent.atomic.Striped64$Cell[]
putfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
45: goto 49
StackMap locals:
StackMap stack: java.lang.Throwable
46: astore 12
47: aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
48: aload 12
athrow
49: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
50: iconst_0
istore 6
51: goto 6
end local 10 52: StackMap locals:
StackMap stack:
iload 5
invokestatic java.util.concurrent.atomic.Striped64.advanceProbe:(I)I
istore 5
53: goto 6
end local 9 end local 8 54: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.atomic.Striped64.cellsBusy:I
ifne 66
aload 0
getfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
aload 7
if_acmpne 66
aload 0
invokevirtual java.util.concurrent.atomic.Striped64.casCellsBusy:()Z
ifeq 66
55: aload 0
getfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
aload 7
if_acmpne 64
56: iconst_2
anewarray java.util.concurrent.atomic.Striped64$Cell
astore 12
start local 12 57: aload 12
iload 5
iconst_1
iand
new java.util.concurrent.atomic.Striped64$Cell
dup
lload 1
invokespecial java.util.concurrent.atomic.Striped64$Cell.<init>:(J)V
aastore
58: aload 0
aload 12
putfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
59: aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
60: goto 71
end local 12 61: StackMap locals:
StackMap stack: java.lang.Throwable
astore 13
62: aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
63: aload 13
athrow
64: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
65: goto 6
66: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield java.util.concurrent.atomic.Striped64.base:J
dup2
lstore 10
start local 10 67: aload 3
ifnonnull 68
lload 10
lload 1
ladd
goto 69
StackMap locals: java.util.concurrent.atomic.Striped64 long java.util.function.LongBinaryOperator int int int java.util.concurrent.atomic.Striped64$Cell[] top top long
StackMap stack: java.util.concurrent.atomic.Striped64 long
68: aload 3
lload 10
lload 1
invokeinterface java.util.function.LongBinaryOperator.applyAsLong:(JJ)J
69: StackMap locals: java.util.concurrent.atomic.Striped64 long java.util.function.LongBinaryOperator int int int java.util.concurrent.atomic.Striped64$Cell[] top top long
StackMap stack: java.util.concurrent.atomic.Striped64 long long
invokevirtual java.util.concurrent.atomic.Striped64.casBase:(JJ)Z
70: ifeq 6
end local 10 end local 7 71: StackMap locals: java.util.concurrent.atomic.Striped64 long java.util.function.LongBinaryOperator int int int
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 72 0 this Ljava/util/concurrent/atomic/Striped64;
0 72 1 x J
0 72 3 fn Ljava/util/function/LongBinaryOperator;
0 72 4 wasUncontended Z
1 72 5 h I
6 72 6 collide Z
7 71 7 cs [Ljava/util/concurrent/atomic/Striped64$Cell;
10 54 8 c Ljava/util/concurrent/atomic/Striped64$Cell;
8 54 9 n I
33 52 10 v J
67 71 10 v J
13 28 12 r Ljava/util/concurrent/atomic/Striped64$Cell;
15 23 13 rs [Ljava/util/concurrent/atomic/Striped64$Cell;
17 23 14 m I
19 23 15 j I
57 61 12 rs [Ljava/util/concurrent/atomic/Striped64$Cell;
Exception table:
from to target type
14 21 23 any
43 46 46 any
55 59 61 any
MethodParameters:
Name Flags
x
fn
wasUncontended
private static long apply(java.util.function.DoubleBinaryOperator, long, double);
descriptor: (Ljava/util/function/DoubleBinaryOperator;JD)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 3 0: lload 1
invokestatic java.lang.Double.longBitsToDouble:(J)D
dstore 5
start local 5 1: aload 0
ifnonnull 2
dload 5
dload 3
dadd
goto 3
StackMap locals: double
StackMap stack:
2: aload 0
dload 5
dload 3
invokeinterface java.util.function.DoubleBinaryOperator.applyAsDouble:(DD)D
StackMap locals:
StackMap stack: double
3: dstore 5
4: dload 5
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
lreturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 fn Ljava/util/function/DoubleBinaryOperator;
0 5 1 v J
0 5 3 x D
1 5 5 d D
MethodParameters:
Name Flags
fn
v
x
final void doubleAccumulate(double, java.util.function.DoubleBinaryOperator, boolean);
descriptor: (DLjava/util/function/DoubleBinaryOperator;Z)V
flags: (0x0010) ACC_FINAL
Code:
stack=8, locals=17, args_size=4
start local 0 start local 1 start local 3 start local 4 0: invokestatic java.util.concurrent.atomic.Striped64.getProbe:()I
dup
istore 5
start local 5 1: ifne 5
2: invokestatic java.util.concurrent.ThreadLocalRandom.current:()Ljava/util/concurrent/ThreadLocalRandom;
pop
3: invokestatic java.util.concurrent.atomic.Striped64.getProbe:()I
istore 5
4: iconst_1
istore 4
5: StackMap locals: int
StackMap stack:
iconst_0
istore 6
start local 6 6: StackMap locals: int
StackMap stack:
aload 0
getfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
dup
astore 7
start local 7 7: ifnull 51
aload 7
arraylength
dup
istore 9
start local 9 8: ifle 51
9: aload 7
iload 9
iconst_1
isub
iload 5
iand
aaload
dup
astore 8
start local 8 10: ifnonnull 30
11: aload 0
getfield java.util.concurrent.atomic.Striped64.cellsBusy:I
ifne 28
12: new java.util.concurrent.atomic.Striped64$Cell
dup
dload 1
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
invokespecial java.util.concurrent.atomic.Striped64$Cell.<init>:(J)V
astore 12
start local 12 13: aload 0
getfield java.util.concurrent.atomic.Striped64.cellsBusy:I
ifne 28
aload 0
invokevirtual java.util.concurrent.atomic.Striped64.casCellsBusy:()Z
ifeq 28
14: aload 0
getfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
dup
astore 13
start local 13 15: ifnull 26
16: aload 13
arraylength
dup
istore 14
start local 14 17: ifle 26
18: aload 13
iload 14
iconst_1
isub
iload 5
iand
dup
istore 15
start local 15 19: aaload
ifnonnull 26
20: aload 13
iload 15
aload 12
aastore
21: aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
22: goto 65
end local 15 end local 14 end local 13 23: StackMap locals: java.util.concurrent.atomic.Striped64 double java.util.function.DoubleBinaryOperator int int int java.util.concurrent.atomic.Striped64$Cell[] java.util.concurrent.atomic.Striped64$Cell int top top java.util.concurrent.atomic.Striped64$Cell
StackMap stack: java.lang.Throwable
astore 16
24: aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
25: aload 16
athrow
26: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
27: goto 6
end local 12 28: StackMap locals: java.util.concurrent.atomic.Striped64 double java.util.function.DoubleBinaryOperator int int int java.util.concurrent.atomic.Striped64$Cell[] java.util.concurrent.atomic.Striped64$Cell int
StackMap stack:
iconst_0
istore 6
29: goto 49
30: StackMap locals:
StackMap stack:
iload 4
ifne 32
31: iconst_1
istore 4
goto 49
32: StackMap locals:
StackMap stack:
aload 8
aload 8
getfield java.util.concurrent.atomic.Striped64$Cell.value:J
dup2
lstore 10
start local 10 33: aload 3
lload 10
dload 1
invokestatic java.util.concurrent.atomic.Striped64.apply:(Ljava/util/function/DoubleBinaryOperator;JD)J
invokevirtual java.util.concurrent.atomic.Striped64$Cell.cas:(JJ)Z
ifeq 35
34: goto 65
35: StackMap locals: long
StackMap stack:
iload 9
getstatic java.util.concurrent.atomic.Striped64.NCPU:I
if_icmpge 36
aload 0
getfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
aload 7
if_acmpeq 37
36: StackMap locals:
StackMap stack:
iconst_0
istore 6
goto 49
37: StackMap locals:
StackMap stack:
iload 6
ifne 39
38: iconst_1
istore 6
goto 49
39: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.atomic.Striped64.cellsBusy:I
ifne 49
aload 0
invokevirtual java.util.concurrent.atomic.Striped64.casCellsBusy:()Z
ifeq 49
40: aload 0
getfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
aload 7
if_acmpne 46
41: aload 0
aload 7
iload 9
iconst_1
ishl
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.util.concurrent.atomic.Striped64$Cell[]
putfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
42: goto 46
StackMap locals:
StackMap stack: java.lang.Throwable
43: astore 12
44: aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
45: aload 12
athrow
46: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
47: iconst_0
istore 6
48: goto 6
end local 10 49: StackMap locals:
StackMap stack:
iload 5
invokestatic java.util.concurrent.atomic.Striped64.advanceProbe:(I)I
istore 5
50: goto 6
end local 9 end local 8 51: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.atomic.Striped64.cellsBusy:I
ifne 63
aload 0
getfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
aload 7
if_acmpne 63
aload 0
invokevirtual java.util.concurrent.atomic.Striped64.casCellsBusy:()Z
ifeq 63
52: aload 0
getfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
aload 7
if_acmpne 61
53: iconst_2
anewarray java.util.concurrent.atomic.Striped64$Cell
astore 12
start local 12 54: aload 12
iload 5
iconst_1
iand
new java.util.concurrent.atomic.Striped64$Cell
dup
dload 1
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
invokespecial java.util.concurrent.atomic.Striped64$Cell.<init>:(J)V
aastore
55: aload 0
aload 12
putfield java.util.concurrent.atomic.Striped64.cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
56: aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
57: goto 65
end local 12 58: StackMap locals:
StackMap stack: java.lang.Throwable
astore 13
59: aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
60: aload 13
athrow
61: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield java.util.concurrent.atomic.Striped64.cellsBusy:I
62: goto 6
63: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield java.util.concurrent.atomic.Striped64.base:J
dup2
lstore 10
start local 10 64: aload 3
lload 10
dload 1
invokestatic java.util.concurrent.atomic.Striped64.apply:(Ljava/util/function/DoubleBinaryOperator;JD)J
invokevirtual java.util.concurrent.atomic.Striped64.casBase:(JJ)Z
ifeq 6
end local 10 end local 7 65: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 66 0 this Ljava/util/concurrent/atomic/Striped64;
0 66 1 x D
0 66 3 fn Ljava/util/function/DoubleBinaryOperator;
0 66 4 wasUncontended Z
1 66 5 h I
6 66 6 collide Z
7 65 7 cs [Ljava/util/concurrent/atomic/Striped64$Cell;
10 51 8 c Ljava/util/concurrent/atomic/Striped64$Cell;
8 51 9 n I
33 49 10 v J
64 65 10 v J
13 28 12 r Ljava/util/concurrent/atomic/Striped64$Cell;
15 23 13 rs [Ljava/util/concurrent/atomic/Striped64$Cell;
17 23 14 m I
19 23 15 j I
54 58 12 rs [Ljava/util/concurrent/atomic/Striped64$Cell;
Exception table:
from to target type
14 21 23 any
40 43 43 any
52 56 58 any
MethodParameters:
Name Flags
x
fn
wasUncontended
}
SourceFile: "Striped64.java"
NestMembers:
java.util.concurrent.atomic.Striped64$1 java.util.concurrent.atomic.Striped64$Cell
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
java.util.concurrent.atomic.Striped64$1
final Cell = java.util.concurrent.atomic.Striped64$Cell of java.util.concurrent.atomic.Striped64