Package com.lmax.disruptor
Class WorkProcessor<T>
- java.lang.Object
-
- com.lmax.disruptor.WorkProcessor<T>
-
- Type Parameters:
T- event implementation storing the details for the work to processed.
- All Implemented Interfaces:
EventProcessor,Runnable
public final class WorkProcessor<T> extends Object implements EventProcessor
A
WorkProcessorwraps a singleWorkHandler, effectively consuming the sequence and ensuring appropriate barriers.Generally, this will be used as part of a
WorkerPool.
-
-
Constructor Summary
Constructors Constructor Description WorkProcessor(RingBuffer<T> ringBuffer, SequenceBarrier sequenceBarrier, WorkHandler<? super T> workHandler, ExceptionHandler<? super T> exceptionHandler, Sequence workSequence)Construct aWorkProcessor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SequencegetSequence()Get a reference to theSequencebeing used by thisEventProcessor.voidhalt()Signal that this EventProcessor should stop when it has finished consuming at the next clean break.booleanisRunning()voidrun()It is ok to have another thread re-run this method after a halt().
-
-
-
Constructor Detail
-
WorkProcessor
public WorkProcessor(RingBuffer<T> ringBuffer, SequenceBarrier sequenceBarrier, WorkHandler<? super T> workHandler, ExceptionHandler<? super T> exceptionHandler, Sequence workSequence)
Construct aWorkProcessor.- Parameters:
ringBuffer- to which events are published.sequenceBarrier- on which it is waiting.workHandler- is the delegate to which events are dispatched.exceptionHandler- to be called back when an error occursworkSequence- from which to claim the next event to be worked on. It should always be initialised asSequencer.INITIAL_CURSOR_VALUE
-
-
Method Detail
-
getSequence
public Sequence getSequence()
Description copied from interface:EventProcessorGet a reference to theSequencebeing used by thisEventProcessor.- Specified by:
getSequencein interfaceEventProcessor- Returns:
- reference to the
Sequencefor thisEventProcessor
-
halt
public void halt()
Description copied from interface:EventProcessorSignal that this EventProcessor should stop when it has finished consuming at the next clean break. It will callSequenceBarrier.alert()to notify the thread to check status.- Specified by:
haltin interfaceEventProcessor
-
isRunning
public boolean isRunning()
- Specified by:
isRunningin interfaceEventProcessor
-
run
public void run()
It is ok to have another thread re-run this method after a halt().- Specified by:
runin interfaceRunnable- Throws:
IllegalStateException- if this processor is already running
-
-