public final class com.lmax.disruptor.SingleProducerSequencer extends com.lmax.disruptor.SingleProducerSequencerFields
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.lmax.disruptor.SingleProducerSequencer
super_class: com.lmax.disruptor.SingleProducerSequencerFields
{
protected long p1;
descriptor: J
flags: (0x0004) ACC_PROTECTED
protected long p2;
descriptor: J
flags: (0x0004) ACC_PROTECTED
protected long p3;
descriptor: J
flags: (0x0004) ACC_PROTECTED
protected long p4;
descriptor: J
flags: (0x0004) ACC_PROTECTED
protected long p5;
descriptor: J
flags: (0x0004) ACC_PROTECTED
protected long p6;
descriptor: J
flags: (0x0004) ACC_PROTECTED
protected long p7;
descriptor: J
flags: (0x0004) ACC_PROTECTED
public void <init>(int, com.lmax.disruptor.WaitStrategy);
descriptor: (ILcom/lmax/disruptor/WaitStrategy;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
invokespecial com.lmax.disruptor.SingleProducerSequencerFields.<init>:(ILcom/lmax/disruptor/WaitStrategy;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
0 2 1 bufferSize I
0 2 2 waitStrategy Lcom/lmax/disruptor/WaitStrategy;
MethodParameters:
Name Flags
bufferSize
waitStrategy
public boolean hasAvailableCapacity(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_0
invokevirtual com.lmax.disruptor.SingleProducerSequencer.hasAvailableCapacity:(IZ)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
0 1 1 requiredCapacity I
MethodParameters:
Name Flags
requiredCapacity
private boolean hasAvailableCapacity(int, boolean);
descriptor: (IZ)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.nextValue:J
lstore 3
start local 3 1: lload 3
iload 1
i2l
ladd
aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.bufferSize:I
i2l
lsub
lstore 5
start local 5 2: aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.cachedValue:J
lstore 7
start local 7 3: lload 5
lload 7
lcmp
ifgt 4
lload 7
lload 3
lcmp
ifle 10
4: StackMap locals: long long long
StackMap stack:
iload 2
ifeq 6
5: aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.cursor:Lcom/lmax/disruptor/Sequence;
lload 3
invokevirtual com.lmax.disruptor.Sequence.setVolatile:(J)V
6: StackMap locals:
StackMap stack:
aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.gatingSequences:[Lcom/lmax/disruptor/Sequence;
lload 3
invokestatic com.lmax.disruptor.util.Util.getMinimumSequence:([Lcom/lmax/disruptor/Sequence;J)J
lstore 9
start local 9 7: aload 0
lload 9
putfield com.lmax.disruptor.SingleProducerSequencer.cachedValue:J
8: lload 5
lload 9
lcmp
ifle 10
9: iconst_0
ireturn
end local 9 10: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
0 11 1 requiredCapacity I
0 11 2 doStore Z
1 11 3 nextValue J
2 11 5 wrapPoint J
3 11 7 cachedGatingSequence J
7 10 9 minSequence J
MethodParameters:
Name Flags
requiredCapacity
doStore
public long next();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual com.lmax.disruptor.SingleProducerSequencer.next:(I)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
public long next(int);
descriptor: (I)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=12, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
if_icmpge 2
1: new java.lang.IllegalArgumentException
dup
ldc "n must be > 0"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.nextValue:J
lstore 2
start local 2 3: lload 2
iload 1
i2l
ladd
lstore 4
start local 4 4: lload 4
aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.bufferSize:I
i2l
lsub
lstore 6
start local 6 5: aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.cachedValue:J
lstore 8
start local 8 6: lload 6
lload 8
lcmp
ifgt 7
lload 8
lload 2
lcmp
ifle 13
7: StackMap locals: com.lmax.disruptor.SingleProducerSequencer int long long long long
StackMap stack:
aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.cursor:Lcom/lmax/disruptor/Sequence;
lload 2
invokevirtual com.lmax.disruptor.Sequence.setVolatile:(J)V
8: goto 10
start local 10 9: StackMap locals: long
StackMap stack:
lconst_1
invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(J)V
end local 10 10: StackMap locals:
StackMap stack:
lload 6
aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.gatingSequences:[Lcom/lmax/disruptor/Sequence;
lload 2
invokestatic com.lmax.disruptor.util.Util.getMinimumSequence:([Lcom/lmax/disruptor/Sequence;J)J
dup2
lstore 10
start local 10 11: lcmp
ifgt 9
12: aload 0
lload 10
putfield com.lmax.disruptor.SingleProducerSequencer.cachedValue:J
end local 10 13: StackMap locals:
StackMap stack:
aload 0
lload 4
putfield com.lmax.disruptor.SingleProducerSequencer.nextValue:J
14: lload 4
lreturn
end local 8 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
0 15 1 n I
3 15 2 nextValue J
4 15 4 nextSequence J
5 15 6 wrapPoint J
6 15 8 cachedGatingSequence J
9 10 10 minSequence J
11 13 10 minSequence J
MethodParameters:
Name Flags
n
public long tryNext();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual com.lmax.disruptor.SingleProducerSequencer.tryNext:(I)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
Exceptions:
throws com.lmax.disruptor.InsufficientCapacityException
public long tryNext(int);
descriptor: (I)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
if_icmpge 2
1: new java.lang.IllegalArgumentException
dup
ldc "n must be > 0"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 1
iconst_1
invokevirtual com.lmax.disruptor.SingleProducerSequencer.hasAvailableCapacity:(IZ)Z
ifne 4
3: getstatic com.lmax.disruptor.InsufficientCapacityException.INSTANCE:Lcom/lmax/disruptor/InsufficientCapacityException;
athrow
4: StackMap locals:
StackMap stack:
aload 0
dup
getfield com.lmax.disruptor.SingleProducerSequencer.nextValue:J
iload 1
i2l
ladd
dup2_x1
putfield com.lmax.disruptor.SingleProducerSequencer.nextValue:J
lstore 2
start local 2 5: lload 2
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
0 6 1 n I
5 6 2 nextSequence J
Exceptions:
throws com.lmax.disruptor.InsufficientCapacityException
MethodParameters:
Name Flags
n
public long remainingCapacity();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=1
start local 0 0: aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.nextValue:J
lstore 1
start local 1 1: aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.gatingSequences:[Lcom/lmax/disruptor/Sequence;
lload 1
invokestatic com.lmax.disruptor.util.Util.getMinimumSequence:([Lcom/lmax/disruptor/Sequence;J)J
lstore 3
start local 3 2: lload 1
lstore 5
start local 5 3: aload 0
invokevirtual com.lmax.disruptor.SingleProducerSequencer.getBufferSize:()I
i2l
lload 5
lload 3
lsub
lsub
lreturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
1 4 1 nextValue J
2 4 3 consumed J
3 4 5 produced J
public void claim(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
putfield com.lmax.disruptor.SingleProducerSequencer.nextValue:J
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
0 2 1 sequence J
MethodParameters:
Name Flags
sequence
public void publish(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.cursor:Lcom/lmax/disruptor/Sequence;
lload 1
invokevirtual com.lmax.disruptor.Sequence.set:(J)V
1: aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.waitStrategy:Lcom/lmax/disruptor/WaitStrategy;
invokeinterface com.lmax.disruptor.WaitStrategy.signalAllWhenBlocking:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
0 3 1 sequence J
MethodParameters:
Name Flags
sequence
public void publish(long, long);
descriptor: (JJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 3
invokevirtual com.lmax.disruptor.SingleProducerSequencer.publish:(J)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
0 2 1 lo J
0 2 3 hi J
MethodParameters:
Name Flags
lo
hi
public boolean isAvailable(long);
descriptor: (J)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
getfield com.lmax.disruptor.SingleProducerSequencer.cursor:Lcom/lmax/disruptor/Sequence;
invokevirtual com.lmax.disruptor.Sequence.get:()J
lcmp
ifgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
0 2 1 sequence J
MethodParameters:
Name Flags
sequence
public long getHighestPublishedSequence(long, long);
descriptor: (JJ)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 3 0: lload 3
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/SingleProducerSequencer;
0 1 1 lowerBound J
0 1 3 availableSequence J
MethodParameters:
Name Flags
lowerBound
availableSequence
}
SourceFile: "SingleProducerSequencer.java"