public final class org.apache.cassandra.utils.concurrent.OpOrder$Group implements java.lang.Comparable<org.apache.cassandra.utils.concurrent.OpOrder$Group>, java.lang.AutoCloseable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.apache.cassandra.utils.concurrent.OpOrder$Group
super_class: java.lang.Object
{
private volatile org.apache.cassandra.utils.concurrent.OpOrder$Group prev;
descriptor: Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile org.apache.cassandra.utils.concurrent.OpOrder$Group next;
descriptor: Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final long id;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile int running;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean isBlocking;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final org.apache.cassandra.utils.concurrent.WaitQueue isBlockingSignal;
descriptor: Lorg/apache/cassandra/utils/concurrent/WaitQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.utils.concurrent.WaitQueue waiting;
descriptor: Lorg/apache/cassandra/utils/concurrent/WaitQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.apache.cassandra.utils.concurrent.OpOrder$Group> runningUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
ldc "running"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.apache.cassandra.utils.concurrent.OpOrder$Group.runningUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
2: aload 0
new org.apache.cassandra.utils.concurrent.WaitQueue
dup
invokespecial org.apache.cassandra.utils.concurrent.WaitQueue.<init>:()V
putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.isBlockingSignal:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
3: aload 0
new org.apache.cassandra.utils.concurrent.WaitQueue
dup
invokespecial org.apache.cassandra.utils.concurrent.WaitQueue.<init>:()V
putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.waiting:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
4: aload 0
lconst_0
putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.id:J
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
private void <init>(org.apache.cassandra.utils.concurrent.OpOrder$Group);
descriptor: (Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
2: aload 0
new org.apache.cassandra.utils.concurrent.WaitQueue
dup
invokespecial org.apache.cassandra.utils.concurrent.WaitQueue.<init>:()V
putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.isBlockingSignal:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
3: aload 0
new org.apache.cassandra.utils.concurrent.WaitQueue
dup
invokespecial org.apache.cassandra.utils.concurrent.WaitQueue.<init>:()V
putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.waiting:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
4: aload 0
aload 1
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.id:J
lconst_1
ladd
putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.id:J
5: aload 0
aload 1
putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.prev:Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
0 7 1 prev Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
MethodParameters:
Name Flags
prev
private void expire();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
istore 1
start local 1 1: iload 1
ifge 3
2: new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
3: StackMap locals: int
StackMap stack:
getstatic org.apache.cassandra.utils.concurrent.OpOrder$Group.runningUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 1
iconst_m1
iload 1
isub
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 0
4: iload 1
ifne 6
5: aload 0
invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Group.unlink:()V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
1 7 1 current I
private boolean register();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
istore 1
start local 1 1: iload 1
ifge 3
2: iconst_0
ireturn
3: StackMap locals: int
StackMap stack:
getstatic org.apache.cassandra.utils.concurrent.OpOrder$Group.runningUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 1
iload 1
iconst_1
iadd
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 0
4: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
1 5 1 current I
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
istore 1
start local 1 1: iload 1
ifge 6
2: getstatic org.apache.cassandra.utils.concurrent.OpOrder$Group.runningUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 1
iload 1
iconst_1
iadd
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 0
3: iload 1
iconst_1
iadd
iconst_m1
if_icmpne 5
4: aload 0
invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Group.unlink:()V
5: StackMap locals: int
StackMap stack:
return
6: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.utils.concurrent.OpOrder$Group.runningUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 1
iload 1
iconst_1
isub
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 0
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
1 8 1 current I
private void unlink();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: StackMap locals: org.apache.cassandra.utils.concurrent.OpOrder$Group
StackMap stack:
aload 1
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.prev:Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
astore 2
start local 2 2: aload 2
ifnonnull 4
3: goto 8
4: StackMap locals: org.apache.cassandra.utils.concurrent.OpOrder$Group
StackMap stack:
aload 2
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
iconst_m1
if_icmpeq 6
5: return
6: StackMap locals:
StackMap stack:
aload 2
astore 1
end local 2 7: goto 1
8: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.next:Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
astore 2
start local 2 9: goto 11
10: StackMap locals: org.apache.cassandra.utils.concurrent.OpOrder$Group
StackMap stack:
aload 2
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.next:Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
astore 2
11: StackMap locals:
StackMap stack:
aload 2
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
iconst_m1
if_icmpeq 10
12: goto 17
13: StackMap locals:
StackMap stack:
aload 1
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.next:Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
astore 3
start local 3 14: aload 3
aconst_null
putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.prev:Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
15: aload 1
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.waiting:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
invokevirtual org.apache.cassandra.utils.concurrent.WaitQueue.signalAll:()V
16: aload 3
astore 1
end local 3 17: StackMap locals:
StackMap stack:
aload 1
aload 2
if_acmpne 13
18: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
1 19 1 start Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
2 7 2 prev Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
9 19 2 end Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
14 17 3 next Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
public boolean isBlocking();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.isBlocking:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
public org.apache.cassandra.utils.concurrent.WaitQueue$Signal isBlockingSignal();
descriptor: ()Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.isBlockingSignal:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
invokevirtual org.apache.cassandra.utils.concurrent.WaitQueue.register:()Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
public org.apache.cassandra.utils.concurrent.WaitQueue$Signal isBlockingSignal(org.apache.cassandra.utils.concurrent.WaitQueue$Signal);
descriptor: (Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;)Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iconst_2
anewarray org.apache.cassandra.utils.concurrent.WaitQueue$Signal
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 0
invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Group.isBlockingSignal:()Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
aastore
invokestatic org.apache.cassandra.utils.concurrent.WaitQueue.any:([Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;)Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
0 1 1 signal Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
MethodParameters:
Name Flags
signal
public int compareTo(org.apache.cassandra.utils.concurrent.OpOrder$Group);
descriptor: (Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.id:J
aload 1
getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.id:J
lsub
lstore 2
start local 2 1: lload 2
lconst_0
lcmp
ifle 3
2: iconst_1
ireturn
3: StackMap locals: long
StackMap stack:
lload 2
lconst_0
lcmp
ifge 5
4: iconst_m1
ireturn
5: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
0 6 1 that Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
1 6 2 c J
MethodParameters:
Name Flags
that
public int compareTo(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast org.apache.cassandra.utils.concurrent.OpOrder$Group
invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Group.compareTo:(Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/lang/Comparable<Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;>;Ljava/lang/AutoCloseable;
SourceFile: "OpOrder.java"
NestHost: org.apache.cassandra.utils.concurrent.OpOrder
InnerClasses:
public final Group = org.apache.cassandra.utils.concurrent.OpOrder$Group of org.apache.cassandra.utils.concurrent.OpOrder
public abstract Signal = org.apache.cassandra.utils.concurrent.WaitQueue$Signal of org.apache.cassandra.utils.concurrent.WaitQueue