public class com.lmax.disruptor.dsl.Disruptor<T>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.lmax.disruptor.dsl.Disruptor
super_class: java.lang.Object
{
private final com.lmax.disruptor.RingBuffer<T> ringBuffer;
descriptor: Lcom/lmax/disruptor/RingBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/lmax/disruptor/RingBuffer<TT;>;
private final java.util.concurrent.Executor executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.lmax.disruptor.dsl.ConsumerRepository<T> consumerRepository;
descriptor: Lcom/lmax/disruptor/dsl/ConsumerRepository;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/lmax/disruptor/dsl/ConsumerRepository<TT;>;
private final java.util.concurrent.atomic.AtomicBoolean started;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.lmax.disruptor.ExceptionHandler<? super T> exceptionHandler;
descriptor: Lcom/lmax/disruptor/ExceptionHandler;
flags: (0x0002) ACC_PRIVATE
Signature: Lcom/lmax/disruptor/ExceptionHandler<-TT;>;
public void <init>(com.lmax.disruptor.EventFactory<T>, int, java.util.concurrent.Executor);
descriptor: (Lcom/lmax/disruptor/EventFactory;ILjava/util/concurrent/Executor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
invokestatic com.lmax.disruptor.RingBuffer.createMultiProducer:(Lcom/lmax/disruptor/EventFactory;I)Lcom/lmax/disruptor/RingBuffer;
aload 3
invokespecial com.lmax.disruptor.dsl.Disruptor.<init>:(Lcom/lmax/disruptor/RingBuffer;Ljava/util/concurrent/Executor;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 2 1 eventFactory Lcom/lmax/disruptor/EventFactory<TT;>;
0 2 2 ringBufferSize I
0 2 3 executor Ljava/util/concurrent/Executor;
Signature: (Lcom/lmax/disruptor/EventFactory<TT;>;ILjava/util/concurrent/Executor;)V
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
eventFactory final
ringBufferSize final
executor final
public void <init>(com.lmax.disruptor.EventFactory<T>, int, java.util.concurrent.Executor, com.lmax.disruptor.dsl.ProducerType, com.lmax.disruptor.WaitStrategy);
descriptor: (Lcom/lmax/disruptor/EventFactory;ILjava/util/concurrent/Executor;Lcom/lmax/disruptor/dsl/ProducerType;Lcom/lmax/disruptor/WaitStrategy;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 4
aload 1
iload 2
aload 5
invokestatic com.lmax.disruptor.RingBuffer.create:(Lcom/lmax/disruptor/dsl/ProducerType;Lcom/lmax/disruptor/EventFactory;ILcom/lmax/disruptor/WaitStrategy;)Lcom/lmax/disruptor/RingBuffer;
aload 3
invokespecial com.lmax.disruptor.dsl.Disruptor.<init>:(Lcom/lmax/disruptor/RingBuffer;Ljava/util/concurrent/Executor;)V
1: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 2 1 eventFactory Lcom/lmax/disruptor/EventFactory<TT;>;
0 2 2 ringBufferSize I
0 2 3 executor Ljava/util/concurrent/Executor;
0 2 4 producerType Lcom/lmax/disruptor/dsl/ProducerType;
0 2 5 waitStrategy Lcom/lmax/disruptor/WaitStrategy;
Signature: (Lcom/lmax/disruptor/EventFactory<TT;>;ILjava/util/concurrent/Executor;Lcom/lmax/disruptor/dsl/ProducerType;Lcom/lmax/disruptor/WaitStrategy;)V
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
eventFactory final
ringBufferSize final
executor final
producerType final
waitStrategy final
public void <init>(com.lmax.disruptor.EventFactory<T>, int, java.util.concurrent.ThreadFactory);
descriptor: (Lcom/lmax/disruptor/EventFactory;ILjava/util/concurrent/ThreadFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
invokestatic com.lmax.disruptor.RingBuffer.createMultiProducer:(Lcom/lmax/disruptor/EventFactory;I)Lcom/lmax/disruptor/RingBuffer;
new com.lmax.disruptor.dsl.BasicExecutor
dup
aload 3
invokespecial com.lmax.disruptor.dsl.BasicExecutor.<init>:(Ljava/util/concurrent/ThreadFactory;)V
invokespecial com.lmax.disruptor.dsl.Disruptor.<init>:(Lcom/lmax/disruptor/RingBuffer;Ljava/util/concurrent/Executor;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 2 1 eventFactory Lcom/lmax/disruptor/EventFactory<TT;>;
0 2 2 ringBufferSize I
0 2 3 threadFactory Ljava/util/concurrent/ThreadFactory;
Signature: (Lcom/lmax/disruptor/EventFactory<TT;>;ILjava/util/concurrent/ThreadFactory;)V
MethodParameters:
Name Flags
eventFactory final
ringBufferSize final
threadFactory final
public void <init>(com.lmax.disruptor.EventFactory<T>, int, java.util.concurrent.ThreadFactory, com.lmax.disruptor.dsl.ProducerType, com.lmax.disruptor.WaitStrategy);
descriptor: (Lcom/lmax/disruptor/EventFactory;ILjava/util/concurrent/ThreadFactory;Lcom/lmax/disruptor/dsl/ProducerType;Lcom/lmax/disruptor/WaitStrategy;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
1: aload 4
aload 1
iload 2
aload 5
invokestatic com.lmax.disruptor.RingBuffer.create:(Lcom/lmax/disruptor/dsl/ProducerType;Lcom/lmax/disruptor/EventFactory;ILcom/lmax/disruptor/WaitStrategy;)Lcom/lmax/disruptor/RingBuffer;
2: new com.lmax.disruptor.dsl.BasicExecutor
dup
aload 3
invokespecial com.lmax.disruptor.dsl.BasicExecutor.<init>:(Ljava/util/concurrent/ThreadFactory;)V
invokespecial com.lmax.disruptor.dsl.Disruptor.<init>:(Lcom/lmax/disruptor/RingBuffer;Ljava/util/concurrent/Executor;)V
3: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 4 1 eventFactory Lcom/lmax/disruptor/EventFactory<TT;>;
0 4 2 ringBufferSize I
0 4 3 threadFactory Ljava/util/concurrent/ThreadFactory;
0 4 4 producerType Lcom/lmax/disruptor/dsl/ProducerType;
0 4 5 waitStrategy Lcom/lmax/disruptor/WaitStrategy;
Signature: (Lcom/lmax/disruptor/EventFactory<TT;>;ILjava/util/concurrent/ThreadFactory;Lcom/lmax/disruptor/dsl/ProducerType;Lcom/lmax/disruptor/WaitStrategy;)V
MethodParameters:
Name Flags
eventFactory final
ringBufferSize final
threadFactory final
producerType final
waitStrategy final
private void <init>(com.lmax.disruptor.RingBuffer<T>, java.util.concurrent.Executor);
descriptor: (Lcom/lmax/disruptor/RingBuffer;Ljava/util/concurrent/Executor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new com.lmax.disruptor.dsl.ConsumerRepository
dup
invokespecial com.lmax.disruptor.dsl.ConsumerRepository.<init>:()V
putfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
2: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
putfield com.lmax.disruptor.dsl.Disruptor.started:Ljava/util/concurrent/atomic/AtomicBoolean;
3: aload 0
new com.lmax.disruptor.dsl.ExceptionHandlerWrapper
dup
invokespecial com.lmax.disruptor.dsl.ExceptionHandlerWrapper.<init>:()V
putfield com.lmax.disruptor.dsl.Disruptor.exceptionHandler:Lcom/lmax/disruptor/ExceptionHandler;
4: aload 0
aload 1
putfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
5: aload 0
aload 2
putfield com.lmax.disruptor.dsl.Disruptor.executor:Ljava/util/concurrent/Executor;
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 7 1 ringBuffer Lcom/lmax/disruptor/RingBuffer<TT;>;
0 7 2 executor Ljava/util/concurrent/Executor;
Signature: (Lcom/lmax/disruptor/RingBuffer<TT;>;Ljava/util/concurrent/Executor;)V
MethodParameters:
Name Flags
ringBuffer final
executor final
public final com.lmax.disruptor.dsl.EventHandlerGroup<T> handleEventsWith(com.lmax.disruptor.EventHandler<? super T>[]);
descriptor: ([Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
flags: (0x0091) ACC_PUBLIC, ACC_FINAL, ACC_VARARGS
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
anewarray com.lmax.disruptor.Sequence
aload 1
invokevirtual com.lmax.disruptor.dsl.Disruptor.createEventProcessors:([Lcom/lmax/disruptor/Sequence;[Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 1 1 handlers [Lcom/lmax/disruptor/EventHandler;
Signature: ([Lcom/lmax/disruptor/EventHandler<-TT;>;)Lcom/lmax/disruptor/dsl/EventHandlerGroup<TT;>;
RuntimeVisibleAnnotations:
java.lang.SafeVarargs()
MethodParameters:
Name Flags
handlers final
public final com.lmax.disruptor.dsl.EventHandlerGroup<T> handleEventsWith(com.lmax.disruptor.dsl.EventProcessorFactory<T>[]);
descriptor: ([Lcom/lmax/disruptor/dsl/EventProcessorFactory;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
flags: (0x0091) ACC_PUBLIC, ACC_FINAL, ACC_VARARGS
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
anewarray com.lmax.disruptor.Sequence
astore 2
start local 2 1: aload 0
aload 2
aload 1
invokevirtual com.lmax.disruptor.dsl.Disruptor.createEventProcessors:([Lcom/lmax/disruptor/Sequence;[Lcom/lmax/disruptor/dsl/EventProcessorFactory;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 2 1 eventProcessorFactories [Lcom/lmax/disruptor/dsl/EventProcessorFactory;
1 2 2 barrierSequences [Lcom/lmax/disruptor/Sequence;
Signature: ([Lcom/lmax/disruptor/dsl/EventProcessorFactory<TT;>;)Lcom/lmax/disruptor/dsl/EventHandlerGroup<TT;>;
RuntimeVisibleAnnotations:
java.lang.SafeVarargs()
MethodParameters:
Name Flags
eventProcessorFactories final
public com.lmax.disruptor.dsl.EventHandlerGroup<T> handleEventsWith(com.lmax.disruptor.EventProcessor[]);
descriptor: ([Lcom/lmax/disruptor/EventProcessor;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 4
StackMap locals: com.lmax.disruptor.dsl.Disruptor com.lmax.disruptor.EventProcessor[] top int int com.lmax.disruptor.EventProcessor[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 2
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.add:(Lcom/lmax/disruptor/EventProcessor;)V
end local 2 3: iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
iload 4
if_icmplt 1
5: aload 1
arraylength
anewarray com.lmax.disruptor.Sequence
astore 2
start local 2 6: iconst_0
istore 3
start local 3 7: goto 10
8: StackMap locals: com.lmax.disruptor.dsl.Disruptor com.lmax.disruptor.EventProcessor[] com.lmax.disruptor.Sequence[] int
StackMap stack:
aload 2
iload 3
aload 1
iload 3
aaload
invokeinterface com.lmax.disruptor.EventProcessor.getSequence:()Lcom/lmax/disruptor/Sequence;
aastore
9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 1
arraylength
if_icmplt 8
end local 3 11: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 2
invokevirtual com.lmax.disruptor.RingBuffer.addGatingSequences:([Lcom/lmax/disruptor/Sequence;)V
12: new com.lmax.disruptor.dsl.EventHandlerGroup
dup
aload 0
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 1
invokestatic com.lmax.disruptor.util.Util.getSequencesFor:([Lcom/lmax/disruptor/EventProcessor;)[Lcom/lmax/disruptor/Sequence;
invokespecial com.lmax.disruptor.dsl.EventHandlerGroup.<init>:(Lcom/lmax/disruptor/dsl/Disruptor;Lcom/lmax/disruptor/dsl/ConsumerRepository;[Lcom/lmax/disruptor/Sequence;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 13 1 processors [Lcom/lmax/disruptor/EventProcessor;
2 3 2 processor Lcom/lmax/disruptor/EventProcessor;
6 13 2 sequences [Lcom/lmax/disruptor/Sequence;
7 11 3 i I
Signature: ([Lcom/lmax/disruptor/EventProcessor;)Lcom/lmax/disruptor/dsl/EventHandlerGroup<TT;>;
MethodParameters:
Name Flags
processors final
public final com.lmax.disruptor.dsl.EventHandlerGroup<T> handleEventsWithWorkerPool(com.lmax.disruptor.WorkHandler<T>[]);
descriptor: ([Lcom/lmax/disruptor/WorkHandler;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
flags: (0x0091) ACC_PUBLIC, ACC_FINAL, ACC_VARARGS
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
anewarray com.lmax.disruptor.Sequence
aload 1
invokevirtual com.lmax.disruptor.dsl.Disruptor.createWorkerPool:([Lcom/lmax/disruptor/Sequence;[Lcom/lmax/disruptor/WorkHandler;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 1 1 workHandlers [Lcom/lmax/disruptor/WorkHandler;
Signature: ([Lcom/lmax/disruptor/WorkHandler<TT;>;)Lcom/lmax/disruptor/dsl/EventHandlerGroup<TT;>;
RuntimeVisibleAnnotations:
java.lang.SafeVarargs()
MethodParameters:
Name Flags
workHandlers final
public void handleExceptionsWith(com.lmax.disruptor.ExceptionHandler<? super T>);
descriptor: (Lcom/lmax/disruptor/ExceptionHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.lmax.disruptor.dsl.Disruptor.exceptionHandler:Lcom/lmax/disruptor/ExceptionHandler;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 2 1 exceptionHandler Lcom/lmax/disruptor/ExceptionHandler<-TT;>;
Signature: (Lcom/lmax/disruptor/ExceptionHandler<-TT;>;)V
MethodParameters:
Name Flags
exceptionHandler final
public void setDefaultExceptionHandler(com.lmax.disruptor.ExceptionHandler<? super T>);
descriptor: (Lcom/lmax/disruptor/ExceptionHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.lmax.disruptor.dsl.Disruptor.checkNotStarted:()V
1: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.exceptionHandler:Lcom/lmax/disruptor/ExceptionHandler;
instanceof com.lmax.disruptor.dsl.ExceptionHandlerWrapper
ifne 3
2: new java.lang.IllegalStateException
dup
ldc "setDefaultExceptionHandler can not be used after handleExceptionsWith"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.exceptionHandler:Lcom/lmax/disruptor/ExceptionHandler;
checkcast com.lmax.disruptor.dsl.ExceptionHandlerWrapper
aload 1
invokevirtual com.lmax.disruptor.dsl.ExceptionHandlerWrapper.switchTo:(Lcom/lmax/disruptor/ExceptionHandler;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 5 1 exceptionHandler Lcom/lmax/disruptor/ExceptionHandler<-TT;>;
Signature: (Lcom/lmax/disruptor/ExceptionHandler<-TT;>;)V
MethodParameters:
Name Flags
exceptionHandler final
public com.lmax.disruptor.dsl.ExceptionHandlerSetting<T> handleExceptionsFor(com.lmax.disruptor.EventHandler<T>);
descriptor: (Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/dsl/ExceptionHandlerSetting;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new com.lmax.disruptor.dsl.ExceptionHandlerSetting
dup
aload 1
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
invokespecial com.lmax.disruptor.dsl.ExceptionHandlerSetting.<init>:(Lcom/lmax/disruptor/EventHandler;Lcom/lmax/disruptor/dsl/ConsumerRepository;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 1 1 eventHandler Lcom/lmax/disruptor/EventHandler<TT;>;
Signature: (Lcom/lmax/disruptor/EventHandler<TT;>;)Lcom/lmax/disruptor/dsl/ExceptionHandlerSetting<TT;>;
MethodParameters:
Name Flags
eventHandler final
public final com.lmax.disruptor.dsl.EventHandlerGroup<T> after(com.lmax.disruptor.EventHandler<T>[]);
descriptor: ([Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
flags: (0x0091) ACC_PUBLIC, ACC_FINAL, ACC_VARARGS
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
arraylength
anewarray com.lmax.disruptor.Sequence
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aload 1
arraylength
istore 4
start local 4 3: goto 6
4: StackMap locals: com.lmax.disruptor.Sequence[] int int
StackMap stack:
aload 2
iload 3
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 1
iload 3
aaload
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.getSequenceFor:(Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/Sequence;
aastore
5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 4
if_icmplt 4
end local 4 end local 3 7: new com.lmax.disruptor.dsl.EventHandlerGroup
dup
aload 0
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 2
invokespecial com.lmax.disruptor.dsl.EventHandlerGroup.<init>:(Lcom/lmax/disruptor/dsl/Disruptor;Lcom/lmax/disruptor/dsl/ConsumerRepository;[Lcom/lmax/disruptor/Sequence;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 8 1 handlers [Lcom/lmax/disruptor/EventHandler;
1 8 2 sequences [Lcom/lmax/disruptor/Sequence;
2 7 3 i I
3 7 4 handlersLength I
Signature: ([Lcom/lmax/disruptor/EventHandler<TT;>;)Lcom/lmax/disruptor/dsl/EventHandlerGroup<TT;>;
RuntimeVisibleAnnotations:
java.lang.SafeVarargs()
MethodParameters:
Name Flags
handlers final
public com.lmax.disruptor.dsl.EventHandlerGroup<T> after(com.lmax.disruptor.EventProcessor[]);
descriptor: ([Lcom/lmax/disruptor/EventProcessor;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 4
StackMap locals: com.lmax.disruptor.dsl.Disruptor com.lmax.disruptor.EventProcessor[] top int int com.lmax.disruptor.EventProcessor[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 2
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.add:(Lcom/lmax/disruptor/EventProcessor;)V
end local 2 3: iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
iload 4
if_icmplt 1
5: new com.lmax.disruptor.dsl.EventHandlerGroup
dup
aload 0
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 1
invokestatic com.lmax.disruptor.util.Util.getSequencesFor:([Lcom/lmax/disruptor/EventProcessor;)[Lcom/lmax/disruptor/Sequence;
invokespecial com.lmax.disruptor.dsl.EventHandlerGroup.<init>:(Lcom/lmax/disruptor/dsl/Disruptor;Lcom/lmax/disruptor/dsl/ConsumerRepository;[Lcom/lmax/disruptor/Sequence;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 6 1 processors [Lcom/lmax/disruptor/EventProcessor;
2 3 2 processor Lcom/lmax/disruptor/EventProcessor;
Signature: ([Lcom/lmax/disruptor/EventProcessor;)Lcom/lmax/disruptor/dsl/EventHandlerGroup<TT;>;
MethodParameters:
Name Flags
processors final
public void publishEvent(com.lmax.disruptor.EventTranslator<T>);
descriptor: (Lcom/lmax/disruptor/EventTranslator;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 1
invokevirtual com.lmax.disruptor.RingBuffer.publishEvent:(Lcom/lmax/disruptor/EventTranslator;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 2 1 eventTranslator Lcom/lmax/disruptor/EventTranslator<TT;>;
Signature: (Lcom/lmax/disruptor/EventTranslator<TT;>;)V
MethodParameters:
Name Flags
eventTranslator final
public <A> void publishEvent(com.lmax.disruptor.EventTranslatorOneArg<T, A>, );
descriptor: (Lcom/lmax/disruptor/EventTranslatorOneArg;Ljava/lang/Object;)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
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 1
aload 2
invokevirtual com.lmax.disruptor.RingBuffer.publishEvent:(Lcom/lmax/disruptor/EventTranslatorOneArg;Ljava/lang/Object;)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/dsl/Disruptor<TT;>;
0 2 1 eventTranslator Lcom/lmax/disruptor/EventTranslatorOneArg<TT;TA;>;
0 2 2 arg TA;
Signature: <A:Ljava/lang/Object;>(Lcom/lmax/disruptor/EventTranslatorOneArg<TT;TA;>;TA;)V
MethodParameters:
Name Flags
eventTranslator final
arg final
public <A> void publishEvents(com.lmax.disruptor.EventTranslatorOneArg<T, A>, );
descriptor: (Lcom/lmax/disruptor/EventTranslatorOneArg;[Ljava/lang/Object;)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
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 1
aload 2
invokevirtual com.lmax.disruptor.RingBuffer.publishEvents:(Lcom/lmax/disruptor/EventTranslatorOneArg;[Ljava/lang/Object;)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/dsl/Disruptor<TT;>;
0 2 1 eventTranslator Lcom/lmax/disruptor/EventTranslatorOneArg<TT;TA;>;
0 2 2 arg [Ljava/lang/Object;
Signature: <A:Ljava/lang/Object;>(Lcom/lmax/disruptor/EventTranslatorOneArg<TT;TA;>;[TA;)V
MethodParameters:
Name Flags
eventTranslator final
arg final
public <A, B> void publishEvent(com.lmax.disruptor.EventTranslatorTwoArg<T, A, B>, A, );
descriptor: (Lcom/lmax/disruptor/EventTranslatorTwoArg;Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 1
aload 2
aload 3
invokevirtual com.lmax.disruptor.RingBuffer.publishEvent:(Lcom/lmax/disruptor/EventTranslatorTwoArg;Ljava/lang/Object;Ljava/lang/Object;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 2 1 eventTranslator Lcom/lmax/disruptor/EventTranslatorTwoArg<TT;TA;TB;>;
0 2 2 arg0 TA;
0 2 3 arg1 TB;
Signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;>(Lcom/lmax/disruptor/EventTranslatorTwoArg<TT;TA;TB;>;TA;TB;)V
MethodParameters:
Name Flags
eventTranslator final
arg0 final
arg1 final
public <A, B, C> void publishEvent(com.lmax.disruptor.EventTranslatorThreeArg<T, A, B, C>, A, B, );
descriptor: (Lcom/lmax/disruptor/EventTranslatorThreeArg;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 1
aload 2
aload 3
aload 4
invokevirtual com.lmax.disruptor.RingBuffer.publishEvent:(Lcom/lmax/disruptor/EventTranslatorThreeArg;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 2 1 eventTranslator Lcom/lmax/disruptor/EventTranslatorThreeArg<TT;TA;TB;TC;>;
0 2 2 arg0 TA;
0 2 3 arg1 TB;
0 2 4 arg2 TC;
Signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;C:Ljava/lang/Object;>(Lcom/lmax/disruptor/EventTranslatorThreeArg<TT;TA;TB;TC;>;TA;TB;TC;)V
MethodParameters:
Name Flags
eventTranslator final
arg0 final
arg1 final
arg2 final
public com.lmax.disruptor.RingBuffer<T> start();
descriptor: ()Lcom/lmax/disruptor/RingBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.lmax.disruptor.dsl.Disruptor.checkOnlyStartedOnce:()V
1: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: com.lmax.disruptor.dsl.Disruptor top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.lmax.disruptor.dsl.ConsumerInfo
astore 1
start local 1 3: aload 1
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.executor:Ljava/util/concurrent/Executor;
invokeinterface com.lmax.disruptor.dsl.ConsumerInfo.start:(Ljava/util/concurrent/Executor;)V
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
3 4 1 consumerInfo Lcom/lmax/disruptor/dsl/ConsumerInfo;
Signature: ()Lcom/lmax/disruptor/RingBuffer<TT;>;
public void halt();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: com.lmax.disruptor.dsl.Disruptor top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.lmax.disruptor.dsl.ConsumerInfo
astore 1
start local 1 2: aload 1
invokeinterface com.lmax.disruptor.dsl.ConsumerInfo.halt:()V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
2 3 1 consumerInfo Lcom/lmax/disruptor/dsl/ConsumerInfo;
public void shutdown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
ldc -1
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual com.lmax.disruptor.dsl.Disruptor.shutdown:(JLjava/util/concurrent/TimeUnit;)V
1: goto 4
2: StackMap locals:
StackMap stack: com.lmax.disruptor.TimeoutException
astore 1
start local 1 3: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.exceptionHandler:Lcom/lmax/disruptor/ExceptionHandler;
aload 1
invokeinterface com.lmax.disruptor.ExceptionHandler.handleOnShutdownException:(Ljava/lang/Throwable;)V
end local 1 4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
3 4 1 e Lcom/lmax/disruptor/TimeoutException;
Exception table:
from to target type
0 1 2 Class com.lmax.disruptor.TimeoutException
public void shutdown(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 3 0: invokestatic java.lang.System.currentTimeMillis:()J
aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
ladd
lstore 4
start local 4 1: goto 4
2: StackMap locals: long
StackMap stack:
lload 1
lconst_0
lcmp
iflt 4
invokestatic java.lang.System.currentTimeMillis:()J
lload 4
lcmp
ifle 4
3: getstatic com.lmax.disruptor.TimeoutException.INSTANCE:Lcom/lmax/disruptor/TimeoutException;
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.lmax.disruptor.dsl.Disruptor.hasBacklog:()Z
ifne 2
5: aload 0
invokevirtual com.lmax.disruptor.dsl.Disruptor.halt:()V
6: return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 7 1 timeout J
0 7 3 timeUnit Ljava/util/concurrent/TimeUnit;
1 7 4 timeOutAt J
Exceptions:
throws com.lmax.disruptor.TimeoutException
MethodParameters:
Name Flags
timeout final
timeUnit final
public com.lmax.disruptor.RingBuffer<T> getRingBuffer();
descriptor: ()Lcom/lmax/disruptor/RingBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
Signature: ()Lcom/lmax/disruptor/RingBuffer<TT;>;
public long getCursor();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
invokevirtual com.lmax.disruptor.RingBuffer.getCursor:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
public long getBufferSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
invokevirtual com.lmax.disruptor.RingBuffer.getBufferSize:()I
i2l
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
public T get();
descriptor: (J)Ljava/lang/Object;
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.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
lload 1
invokevirtual com.lmax.disruptor.RingBuffer.get:(J)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 1 1 sequence J
Signature: (J)TT;
MethodParameters:
Name Flags
sequence final
public com.lmax.disruptor.SequenceBarrier getBarrierFor(com.lmax.disruptor.EventHandler<T>);
descriptor: (Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/SequenceBarrier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 1
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.getBarrierFor:(Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/SequenceBarrier;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 1 1 handler Lcom/lmax/disruptor/EventHandler<TT;>;
Signature: (Lcom/lmax/disruptor/EventHandler<TT;>;)Lcom/lmax/disruptor/SequenceBarrier;
MethodParameters:
Name Flags
handler final
public long getSequenceValueFor(com.lmax.disruptor.EventHandler<T>);
descriptor: (Lcom/lmax/disruptor/EventHandler;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 1
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.getSequenceFor:(Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/Sequence;
invokevirtual com.lmax.disruptor.Sequence.get:()J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 1 1 b1 Lcom/lmax/disruptor/EventHandler<TT;>;
Signature: (Lcom/lmax/disruptor/EventHandler<TT;>;)J
MethodParameters:
Name Flags
b1 final
private boolean hasBacklog();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=1
start local 0 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
invokevirtual com.lmax.disruptor.RingBuffer.getCursor:()J
lstore 1
start local 1 1: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
iconst_0
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.getLastSequenceInChain:(Z)[Lcom/lmax/disruptor/Sequence;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: com.lmax.disruptor.dsl.Disruptor long top int int com.lmax.disruptor.Sequence[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: lload 1
aload 3
invokevirtual com.lmax.disruptor.Sequence.get:()J
lcmp
ifle 5
4: iconst_1
ireturn
end local 3 5: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 2
7: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
1 8 1 cursor J
3 5 3 consumer Lcom/lmax/disruptor/Sequence;
com.lmax.disruptor.dsl.EventHandlerGroup<T> createEventProcessors(com.lmax.disruptor.Sequence[], com.lmax.disruptor.EventHandler<? super T>[]);
descriptor: ([Lcom/lmax/disruptor/Sequence;[Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
flags: (0x0000)
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.lmax.disruptor.dsl.Disruptor.checkNotStarted:()V
1: aload 2
arraylength
anewarray com.lmax.disruptor.Sequence
astore 3
start local 3 2: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 1
invokevirtual com.lmax.disruptor.RingBuffer.newBarrier:([Lcom/lmax/disruptor/Sequence;)Lcom/lmax/disruptor/SequenceBarrier;
astore 4
start local 4 3: iconst_0
istore 5
start local 5 4: aload 2
arraylength
istore 6
start local 6 5: goto 14
6: StackMap locals: com.lmax.disruptor.dsl.Disruptor com.lmax.disruptor.Sequence[] com.lmax.disruptor.EventHandler[] com.lmax.disruptor.Sequence[] com.lmax.disruptor.SequenceBarrier int int
StackMap stack:
aload 2
iload 5
aaload
astore 7
start local 7 7: new com.lmax.disruptor.BatchEventProcessor
dup
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 4
aload 7
invokespecial com.lmax.disruptor.BatchEventProcessor.<init>:(Lcom/lmax/disruptor/DataProvider;Lcom/lmax/disruptor/SequenceBarrier;Lcom/lmax/disruptor/EventHandler;)V
8: astore 8
start local 8 9: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.exceptionHandler:Lcom/lmax/disruptor/ExceptionHandler;
ifnull 11
10: aload 8
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.exceptionHandler:Lcom/lmax/disruptor/ExceptionHandler;
invokevirtual com.lmax.disruptor.BatchEventProcessor.setExceptionHandler:(Lcom/lmax/disruptor/ExceptionHandler;)V
11: StackMap locals: com.lmax.disruptor.EventHandler com.lmax.disruptor.BatchEventProcessor
StackMap stack:
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 8
aload 7
aload 4
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.add:(Lcom/lmax/disruptor/EventProcessor;Lcom/lmax/disruptor/EventHandler;Lcom/lmax/disruptor/SequenceBarrier;)V
12: aload 3
iload 5
aload 8
invokevirtual com.lmax.disruptor.BatchEventProcessor.getSequence:()Lcom/lmax/disruptor/Sequence;
aastore
end local 8 end local 7 13: iinc 5 1
StackMap locals:
StackMap stack:
14: iload 5
iload 6
if_icmplt 6
end local 6 end local 5 15: aload 0
aload 1
aload 3
invokevirtual com.lmax.disruptor.dsl.Disruptor.updateGatingSequencesForNextInChain:([Lcom/lmax/disruptor/Sequence;[Lcom/lmax/disruptor/Sequence;)V
16: new com.lmax.disruptor.dsl.EventHandlerGroup
dup
aload 0
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 3
invokespecial com.lmax.disruptor.dsl.EventHandlerGroup.<init>:(Lcom/lmax/disruptor/dsl/Disruptor;Lcom/lmax/disruptor/dsl/ConsumerRepository;[Lcom/lmax/disruptor/Sequence;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 17 1 barrierSequences [Lcom/lmax/disruptor/Sequence;
0 17 2 eventHandlers [Lcom/lmax/disruptor/EventHandler;
2 17 3 processorSequences [Lcom/lmax/disruptor/Sequence;
3 17 4 barrier Lcom/lmax/disruptor/SequenceBarrier;
4 15 5 i I
5 15 6 eventHandlersLength I
7 13 7 eventHandler Lcom/lmax/disruptor/EventHandler<-TT;>;
9 13 8 batchEventProcessor Lcom/lmax/disruptor/BatchEventProcessor<TT;>;
Signature: ([Lcom/lmax/disruptor/Sequence;[Lcom/lmax/disruptor/EventHandler<-TT;>;)Lcom/lmax/disruptor/dsl/EventHandlerGroup<TT;>;
MethodParameters:
Name Flags
barrierSequences final
eventHandlers final
private void updateGatingSequencesForNextInChain(com.lmax.disruptor.Sequence[], com.lmax.disruptor.Sequence[]);
descriptor: ([Lcom/lmax/disruptor/Sequence;[Lcom/lmax/disruptor/Sequence;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
ifle 8
1: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 2
invokevirtual com.lmax.disruptor.RingBuffer.addGatingSequences:([Lcom/lmax/disruptor/Sequence;)V
2: aload 1
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: com.lmax.disruptor.dsl.Disruptor com.lmax.disruptor.Sequence[] com.lmax.disruptor.Sequence[] top int int com.lmax.disruptor.Sequence[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 3
invokevirtual com.lmax.disruptor.RingBuffer.removeGatingSequence:(Lcom/lmax/disruptor/Sequence;)Z
pop
end local 3 5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 3
7: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 1
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.unMarkEventProcessorsAsEndOfChain:([Lcom/lmax/disruptor/Sequence;)V
8: StackMap locals: com.lmax.disruptor.dsl.Disruptor com.lmax.disruptor.Sequence[] com.lmax.disruptor.Sequence[]
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 9 1 barrierSequences [Lcom/lmax/disruptor/Sequence;
0 9 2 processorSequences [Lcom/lmax/disruptor/Sequence;
4 5 3 barrierSequence Lcom/lmax/disruptor/Sequence;
MethodParameters:
Name Flags
barrierSequences final
processorSequences final
com.lmax.disruptor.dsl.EventHandlerGroup<T> createEventProcessors(com.lmax.disruptor.Sequence[], com.lmax.disruptor.dsl.EventProcessorFactory<T>[]);
descriptor: ([Lcom/lmax/disruptor/Sequence;[Lcom/lmax/disruptor/dsl/EventProcessorFactory;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
flags: (0x0000)
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
anewarray com.lmax.disruptor.EventProcessor
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 5
3: StackMap locals: com.lmax.disruptor.EventProcessor[] int
StackMap stack:
aload 3
iload 4
aload 2
iload 4
aaload
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 1
invokeinterface com.lmax.disruptor.dsl.EventProcessorFactory.createEventProcessor:(Lcom/lmax/disruptor/RingBuffer;[Lcom/lmax/disruptor/Sequence;)Lcom/lmax/disruptor/EventProcessor;
aastore
4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
aload 2
arraylength
if_icmplt 3
end local 4 6: aload 0
aload 3
invokevirtual com.lmax.disruptor.dsl.Disruptor.handleEventsWith:([Lcom/lmax/disruptor/EventProcessor;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 7 1 barrierSequences [Lcom/lmax/disruptor/Sequence;
0 7 2 processorFactories [Lcom/lmax/disruptor/dsl/EventProcessorFactory;
1 7 3 eventProcessors [Lcom/lmax/disruptor/EventProcessor;
2 6 4 i I
Signature: ([Lcom/lmax/disruptor/Sequence;[Lcom/lmax/disruptor/dsl/EventProcessorFactory<TT;>;)Lcom/lmax/disruptor/dsl/EventHandlerGroup<TT;>;
MethodParameters:
Name Flags
barrierSequences final
processorFactories final
com.lmax.disruptor.dsl.EventHandlerGroup<T> createWorkerPool(com.lmax.disruptor.Sequence[], com.lmax.disruptor.WorkHandler<? super T>[]);
descriptor: ([Lcom/lmax/disruptor/Sequence;[Lcom/lmax/disruptor/WorkHandler;)Lcom/lmax/disruptor/dsl/EventHandlerGroup;
flags: (0x0000)
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 1
invokevirtual com.lmax.disruptor.RingBuffer.newBarrier:([Lcom/lmax/disruptor/Sequence;)Lcom/lmax/disruptor/SequenceBarrier;
astore 3
start local 3 1: new com.lmax.disruptor.WorkerPool
dup
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
aload 3
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.exceptionHandler:Lcom/lmax/disruptor/ExceptionHandler;
aload 2
invokespecial com.lmax.disruptor.WorkerPool.<init>:(Lcom/lmax/disruptor/RingBuffer;Lcom/lmax/disruptor/SequenceBarrier;Lcom/lmax/disruptor/ExceptionHandler;[Lcom/lmax/disruptor/WorkHandler;)V
astore 4
start local 4 2: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 4
aload 3
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.add:(Lcom/lmax/disruptor/WorkerPool;Lcom/lmax/disruptor/SequenceBarrier;)V
3: aload 4
invokevirtual com.lmax.disruptor.WorkerPool.getWorkerSequences:()[Lcom/lmax/disruptor/Sequence;
astore 5
start local 5 4: aload 0
aload 1
aload 5
invokevirtual com.lmax.disruptor.dsl.Disruptor.updateGatingSequencesForNextInChain:([Lcom/lmax/disruptor/Sequence;[Lcom/lmax/disruptor/Sequence;)V
5: new com.lmax.disruptor.dsl.EventHandlerGroup
dup
aload 0
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.consumerRepository:Lcom/lmax/disruptor/dsl/ConsumerRepository;
aload 5
invokespecial com.lmax.disruptor.dsl.EventHandlerGroup.<init>:(Lcom/lmax/disruptor/dsl/Disruptor;Lcom/lmax/disruptor/dsl/ConsumerRepository;[Lcom/lmax/disruptor/Sequence;)V
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
0 6 1 barrierSequences [Lcom/lmax/disruptor/Sequence;
0 6 2 workHandlers [Lcom/lmax/disruptor/WorkHandler;
1 6 3 sequenceBarrier Lcom/lmax/disruptor/SequenceBarrier;
2 6 4 workerPool Lcom/lmax/disruptor/WorkerPool<TT;>;
4 6 5 workerSequences [Lcom/lmax/disruptor/Sequence;
Signature: ([Lcom/lmax/disruptor/Sequence;[Lcom/lmax/disruptor/WorkHandler<-TT;>;)Lcom/lmax/disruptor/dsl/EventHandlerGroup<TT;>;
MethodParameters:
Name Flags
barrierSequences final
workHandlers final
private void checkNotStarted();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.started:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "All event handlers must be added before calling starts."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
private void checkOnlyStartedOnce();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.started:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "Disruptor.start() must only be called once."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "Disruptor{ringBuffer="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: aload 0
getfield com.lmax.disruptor.dsl.Disruptor.ringBuffer:Lcom/lmax/disruptor/RingBuffer;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
2: ldc ", started="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.started:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
3: ldc ", executor="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.lmax.disruptor.dsl.Disruptor.executor:Ljava/util/concurrent/Executor;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
4: bipush 125
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
5: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/lmax/disruptor/dsl/Disruptor<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "Disruptor.java"