public final class com.lmax.disruptor.SequenceGroup extends com.lmax.disruptor.Sequence
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.lmax.disruptor.SequenceGroup
  super_class: com.lmax.disruptor.Sequence
{
  private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<com.lmax.disruptor.SequenceGroup, com.lmax.disruptor.Sequence[]> SEQUENCE_UPDATER;
    descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lcom/lmax/disruptor/SequenceGroup;[Lcom/lmax/disruptor/Sequence;>;

  private volatile com.lmax.disruptor.Sequence[] sequences;
    descriptor: [Lcom/lmax/disruptor/Sequence;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 32
            ldc Lcom/lmax/disruptor/SequenceGroup;
            ldc [Lcom/lmax/disruptor/Sequence;
            ldc "sequences"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
         1: .line 31
            putstatic com.lmax.disruptor.SequenceGroup.SEQUENCE_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
         2: .line 32
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.lmax.disruptor.SequenceGroup this
         0: .line 40
            aload 0 /* this */
            ldc -1
            invokespecial com.lmax.disruptor.Sequence.<init>:(J)V
         1: .line 33
            aload 0 /* this */
            iconst_0
            anewarray com.lmax.disruptor.Sequence
            putfield com.lmax.disruptor.SequenceGroup.sequences:[Lcom/lmax/disruptor/Sequence;
         2: .line 41
            return
        end local 0 // com.lmax.disruptor.SequenceGroup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/lmax/disruptor/SequenceGroup;

  public long get();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.lmax.disruptor.SequenceGroup this
         0: .line 51
            aload 0 /* this */
            getfield com.lmax.disruptor.SequenceGroup.sequences:[Lcom/lmax/disruptor/Sequence;
            invokestatic com.lmax.disruptor.util.Util.getMinimumSequence:([Lcom/lmax/disruptor/Sequence;)J
            lreturn
        end local 0 // com.lmax.disruptor.SequenceGroup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/lmax/disruptor/SequenceGroup;

  public void set(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.lmax.disruptor.SequenceGroup this
        start local 1 // long value
         0: .line 62
            aload 0 /* this */
            getfield com.lmax.disruptor.SequenceGroup.sequences:[Lcom/lmax/disruptor/Sequence;
            astore 3 /* sequences */
        start local 3 // com.lmax.disruptor.Sequence[] sequences
         1: .line 63
            aload 3 /* sequences */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 5
      StackMap locals: com.lmax.disruptor.SequenceGroup long com.lmax.disruptor.Sequence[] top int int com.lmax.disruptor.Sequence[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* sequence */
        start local 4 // com.lmax.disruptor.Sequence sequence
         3: .line 65
            aload 4 /* sequence */
            lload 1 /* value */
            invokevirtual com.lmax.disruptor.Sequence.set:(J)V
        end local 4 // com.lmax.disruptor.Sequence sequence
         4: .line 63
            iinc 5 1
      StackMap locals:
      StackMap stack:
         5: iload 5
            iload 6
            if_icmplt 2
         6: .line 67
            return
        end local 3 // com.lmax.disruptor.Sequence[] sequences
        end local 1 // long value
        end local 0 // com.lmax.disruptor.SequenceGroup this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/lmax/disruptor/SequenceGroup;
            0    7     1      value  J
            1    7     3  sequences  [Lcom/lmax/disruptor/Sequence;
            3    4     4   sequence  Lcom/lmax/disruptor/Sequence;
    MethodParameters:
       Name  Flags
      value  final

  public void add(com.lmax.disruptor.Sequence);
    descriptor: (Lcom/lmax/disruptor/Sequence;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.lmax.disruptor.SequenceGroup this
        start local 1 // com.lmax.disruptor.Sequence sequence
         0: .line 82
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.lmax.disruptor.SequenceGroup.sequences:[Lcom/lmax/disruptor/Sequence;
            astore 2 /* oldSequences */
        start local 2 // com.lmax.disruptor.Sequence[] oldSequences
         1: .line 83
            aload 2 /* oldSequences */
            arraylength
            istore 4 /* oldSize */
        start local 4 // int oldSize
         2: .line 84
            iload 4 /* oldSize */
            iconst_1
            iadd
            anewarray com.lmax.disruptor.Sequence
            astore 3 /* newSequences */
        start local 3 // com.lmax.disruptor.Sequence[] newSequences
         3: .line 85
            aload 2 /* oldSequences */
            iconst_0
            aload 3 /* newSequences */
            iconst_0
            iload 4 /* oldSize */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 86
            aload 3 /* newSequences */
            iload 4 /* oldSize */
            aload 1 /* sequence */
            aastore
        end local 4 // int oldSize
         5: .line 88
            getstatic com.lmax.disruptor.SequenceGroup.SEQUENCE_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            aload 2 /* oldSequences */
            aload 3 /* newSequences */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 0
         6: .line 89
            return
        end local 3 // com.lmax.disruptor.Sequence[] newSequences
        end local 2 // com.lmax.disruptor.Sequence[] oldSequences
        end local 1 // com.lmax.disruptor.Sequence sequence
        end local 0 // com.lmax.disruptor.SequenceGroup this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lcom/lmax/disruptor/SequenceGroup;
            0    7     1      sequence  Lcom/lmax/disruptor/Sequence;
            1    7     2  oldSequences  [Lcom/lmax/disruptor/Sequence;
            3    7     3  newSequences  [Lcom/lmax/disruptor/Sequence;
            2    5     4       oldSize  I
    MethodParameters:
          Name  Flags
      sequence  final

  public boolean remove(com.lmax.disruptor.Sequence);
    descriptor: (Lcom/lmax/disruptor/Sequence;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.lmax.disruptor.SequenceGroup this
        start local 1 // com.lmax.disruptor.Sequence sequence
         0: .line 99
            aload 0 /* this */
            getstatic com.lmax.disruptor.SequenceGroup.SEQUENCE_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 1 /* sequence */
            invokestatic com.lmax.disruptor.SequenceGroups.removeSequence:(Ljava/lang/Object;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Lcom/lmax/disruptor/Sequence;)Z
            ireturn
        end local 1 // com.lmax.disruptor.Sequence sequence
        end local 0 // com.lmax.disruptor.SequenceGroup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/lmax/disruptor/SequenceGroup;
            0    1     1  sequence  Lcom/lmax/disruptor/Sequence;
    MethodParameters:
          Name  Flags
      sequence  final

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.lmax.disruptor.SequenceGroup this
         0: .line 109
            aload 0 /* this */
            getfield com.lmax.disruptor.SequenceGroup.sequences:[Lcom/lmax/disruptor/Sequence;
            arraylength
            ireturn
        end local 0 // com.lmax.disruptor.SequenceGroup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/lmax/disruptor/SequenceGroup;

  public void addWhileRunning(com.lmax.disruptor.Cursored, com.lmax.disruptor.Sequence);
    descriptor: (Lcom/lmax/disruptor/Cursored;Lcom/lmax/disruptor/Sequence;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.lmax.disruptor.SequenceGroup this
        start local 1 // com.lmax.disruptor.Cursored cursored
        start local 2 // com.lmax.disruptor.Sequence sequence
         0: .line 123
            aload 0 /* this */
            getstatic com.lmax.disruptor.SequenceGroup.SEQUENCE_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 1 /* cursored */
            iconst_1
            anewarray com.lmax.disruptor.Sequence
            dup
            iconst_0
            aload 2 /* sequence */
            aastore
            invokestatic com.lmax.disruptor.SequenceGroups.addSequences:(Ljava/lang/Object;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Lcom/lmax/disruptor/Cursored;[Lcom/lmax/disruptor/Sequence;)V
         1: .line 124
            return
        end local 2 // com.lmax.disruptor.Sequence sequence
        end local 1 // com.lmax.disruptor.Cursored cursored
        end local 0 // com.lmax.disruptor.SequenceGroup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/lmax/disruptor/SequenceGroup;
            0    2     1  cursored  Lcom/lmax/disruptor/Cursored;
            0    2     2  sequence  Lcom/lmax/disruptor/Sequence;
    MethodParameters:
          Name  Flags
      cursored  
      sequence  
}
SourceFile: "SequenceGroup.java"