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: .line 168
            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 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
         0: .line 171
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 163
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
         2: .line 165
            aload 0 /* this */
            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: .line 166
            aload 0 /* this */
            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: .line 173
            aload 0 /* this */
            lconst_0
            putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.id:J
         5: .line 174
            return
        end local 0 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
      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 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
        start local 1 // org.apache.cassandra.utils.concurrent.OpOrder$Group prev
         0: .line 176
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 163
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
         2: .line 165
            aload 0 /* this */
            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: .line 166
            aload 0 /* this */
            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: .line 178
            aload 0 /* this */
            aload 1 /* prev */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.id:J
            lconst_1
            ladd
            putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.id:J
         5: .line 179
            aload 0 /* this */
            aload 1 /* prev */
            putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.prev:Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
         6: .line 180
            return
        end local 1 // org.apache.cassandra.utils.concurrent.OpOrder$Group prev
        end local 0 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
      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 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
         0: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
            istore 1 /* current */
        start local 1 // int current
         1: .line 190
            iload 1 /* current */
            ifge 3
         2: .line 191
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         3: .line 192
      StackMap locals: int
      StackMap stack:
            getstatic org.apache.cassandra.utils.concurrent.OpOrder$Group.runningUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iload 1 /* current */
            iconst_m1
            iload 1 /* current */
            isub
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 0
         4: .line 195
            iload 1 /* current */
            ifne 6
         5: .line 196
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Group.unlink:()V
         6: .line 197
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int current
        end local 0 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
      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 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
         0: .line 207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
            istore 1 /* current */
        start local 1 // int current
         1: .line 208
            iload 1 /* current */
            ifge 3
         2: .line 209
            iconst_0
            ireturn
         3: .line 210
      StackMap locals: int
      StackMap stack:
            getstatic org.apache.cassandra.utils.concurrent.OpOrder$Group.runningUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iload 1 /* current */
            iload 1 /* current */
            iconst_1
            iadd
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 0
         4: .line 211
            iconst_1
            ireturn
        end local 1 // int current
        end local 0 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
      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 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
         0: .line 223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
            istore 1 /* current */
        start local 1 // int current
         1: .line 224
            iload 1 /* current */
            ifge 6
         2: .line 226
            getstatic org.apache.cassandra.utils.concurrent.OpOrder$Group.runningUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iload 1 /* current */
            iload 1 /* current */
            iconst_1
            iadd
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 0
         3: .line 228
            iload 1 /* current */
            iconst_1
            iadd
            iconst_m1
            if_icmpne 5
         4: .line 231
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Group.unlink:()V
         5: .line 233
      StackMap locals: int
      StackMap stack:
            return
         6: .line 236
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.utils.concurrent.OpOrder$Group.runningUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iload 1 /* current */
            iload 1 /* current */
            iconst_1
            isub
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 0
         7: .line 238
            return
        end local 1 // int current
        end local 0 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
      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 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
         0: .line 254
            aload 0 /* this */
            astore 1 /* start */
        start local 1 // org.apache.cassandra.utils.concurrent.OpOrder$Group start
         1: .line 257
      StackMap locals: org.apache.cassandra.utils.concurrent.OpOrder$Group
      StackMap stack:
            aload 1 /* start */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.prev:Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
            astore 2 /* prev */
        start local 2 // org.apache.cassandra.utils.concurrent.OpOrder$Group prev
         2: .line 258
            aload 2 /* prev */
            ifnonnull 4
         3: .line 259
            goto 8
         4: .line 261
      StackMap locals: org.apache.cassandra.utils.concurrent.OpOrder$Group
      StackMap stack:
            aload 2 /* prev */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
            iconst_m1
            if_icmpeq 6
         5: .line 262
            return
         6: .line 263
      StackMap locals:
      StackMap stack:
            aload 2 /* prev */
            astore 1 /* start */
        end local 2 // org.apache.cassandra.utils.concurrent.OpOrder$Group prev
         7: .line 255
            goto 1
         8: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.next:Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
            astore 2 /* end */
        start local 2 // org.apache.cassandra.utils.concurrent.OpOrder$Group end
         9: .line 268
            goto 11
        10: .line 269
      StackMap locals: org.apache.cassandra.utils.concurrent.OpOrder$Group
      StackMap stack:
            aload 2 /* end */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.next:Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
            astore 2 /* end */
        11: .line 268
      StackMap locals:
      StackMap stack:
            aload 2 /* end */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.running:I
            iconst_m1
            if_icmpeq 10
        12: .line 272
            goto 17
        13: .line 274
      StackMap locals:
      StackMap stack:
            aload 1 /* start */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.next:Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
            astore 3 /* next */
        start local 3 // org.apache.cassandra.utils.concurrent.OpOrder$Group next
        14: .line 275
            aload 3 /* next */
            aconst_null
            putfield org.apache.cassandra.utils.concurrent.OpOrder$Group.prev:Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
        15: .line 276
            aload 1 /* start */
            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: .line 277
            aload 3 /* next */
            astore 1 /* start */
        end local 3 // org.apache.cassandra.utils.concurrent.OpOrder$Group next
        17: .line 272
      StackMap locals:
      StackMap stack:
            aload 1 /* start */
            aload 2 /* end */
            if_acmpne 13
        18: .line 279
            return
        end local 2 // org.apache.cassandra.utils.concurrent.OpOrder$Group end
        end local 1 // org.apache.cassandra.utils.concurrent.OpOrder$Group start
        end local 0 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
      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 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
         0: .line 287
            aload 0 /* this */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.isBlocking:Z
            ireturn
        end local 0 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
      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 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
         0: .line 296
            aload 0 /* this */
            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 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
      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 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
        start local 1 // org.apache.cassandra.utils.concurrent.WaitQueue$Signal signal
         0: .line 304
            iconst_2
            anewarray org.apache.cassandra.utils.concurrent.WaitQueue$Signal
            dup
            iconst_0
            aload 1 /* signal */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            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 // org.apache.cassandra.utils.concurrent.WaitQueue$Signal signal
        end local 0 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
      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 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
        start local 1 // org.apache.cassandra.utils.concurrent.OpOrder$Group that
         0: .line 311
            aload 0 /* this */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.id:J
            aload 1 /* that */
            getfield org.apache.cassandra.utils.concurrent.OpOrder$Group.id:J
            lsub
            lstore 2 /* c */
        start local 2 // long c
         1: .line 312
            lload 2 /* c */
            lconst_0
            lcmp
            ifle 3
         2: .line 313
            iconst_1
            ireturn
         3: .line 314
      StackMap locals: long
      StackMap stack:
            lload 2 /* c */
            lconst_0
            lcmp
            ifge 5
         4: .line 315
            iconst_m1
            ireturn
         5: .line 317
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // long c
        end local 1 // org.apache.cassandra.utils.concurrent.OpOrder$Group that
        end local 0 // org.apache.cassandra.utils.concurrent.OpOrder$Group this
      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: .line 1
            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