public class com.lmax.disruptor.Sequence extends com.lmax.disruptor.RhsPadding
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.lmax.disruptor.Sequence
super_class: com.lmax.disruptor.RhsPadding
{
static final long INITIAL_VALUE;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final sun.misc.Unsafe UNSAFE;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long VALUE_OFFSET;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: invokestatic com.lmax.disruptor.util.Util.getUnsafe:()Lsun/misc/Unsafe;
putstatic com.lmax.disruptor.Sequence.UNSAFE:Lsun/misc/Unsafe;
1: getstatic com.lmax.disruptor.Sequence.UNSAFE:Lsun/misc/Unsafe;
ldc Lcom/lmax/disruptor/Value;
ldc "value"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic com.lmax.disruptor.Sequence.VALUE_OFFSET:J
2: goto 5
3: StackMap locals:
StackMap stack: java.lang.Exception
astore 0
start local 0 4: new java.lang.RuntimeException
dup
aload 0
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 5: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
4 5 0 e Ljava/lang/Exception;
Exception table:
from to target type
1 2 3 Class java.lang.Exception
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc -1
invokespecial com.lmax.disruptor.Sequence.<init>:(J)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/Sequence;
public void <init>(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.lmax.disruptor.RhsPadding.<init>:()V
1: getstatic com.lmax.disruptor.Sequence.UNSAFE:Lsun/misc/Unsafe;
aload 0
getstatic com.lmax.disruptor.Sequence.VALUE_OFFSET:J
lload 1
invokevirtual sun.misc.Unsafe.putOrderedLong:(Ljava/lang/Object;JJ)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/lmax/disruptor/Sequence;
0 3 1 initialValue J
MethodParameters:
Name Flags
initialValue final
public long get();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.lmax.disruptor.Sequence.value:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/Sequence;
public void set(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.lmax.disruptor.Sequence.UNSAFE:Lsun/misc/Unsafe;
aload 0
getstatic com.lmax.disruptor.Sequence.VALUE_OFFSET:J
lload 1
invokevirtual sun.misc.Unsafe.putOrderedLong:(Ljava/lang/Object;JJ)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/Sequence;
0 2 1 value J
MethodParameters:
Name Flags
value final
public void setVolatile(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.lmax.disruptor.Sequence.UNSAFE:Lsun/misc/Unsafe;
aload 0
getstatic com.lmax.disruptor.Sequence.VALUE_OFFSET:J
lload 1
invokevirtual sun.misc.Unsafe.putLongVolatile:(Ljava/lang/Object;JJ)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/Sequence;
0 2 1 value J
MethodParameters:
Name Flags
value final
public boolean compareAndSet(long, long);
descriptor: (JJ)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=5, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.lmax.disruptor.Sequence.UNSAFE:Lsun/misc/Unsafe;
aload 0
getstatic com.lmax.disruptor.Sequence.VALUE_OFFSET:J
lload 1
lload 3
invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/Sequence;
0 1 1 expectedValue J
0 1 3 newValue J
MethodParameters:
Name Flags
expectedValue final
newValue final
public long incrementAndGet();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
lconst_1
invokevirtual com.lmax.disruptor.Sequence.addAndGet:(J)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/Sequence;
public long addAndGet(long);
descriptor: (J)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.lmax.disruptor.Sequence.get:()J
lstore 3
start local 3 1: lload 3
lload 1
ladd
lstore 5
start local 5 2: aload 0
lload 3
lload 5
invokevirtual com.lmax.disruptor.Sequence.compareAndSet:(JJ)Z
ifeq 0
3: lload 5
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/Sequence;
0 4 1 increment J
1 4 3 currentValue J
2 4 5 newValue J
MethodParameters:
Name Flags
increment final
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.lmax.disruptor.Sequence.get:()J
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/Sequence;
}
SourceFile: "Sequence.java"