public class TimeoutBlockingWaitStrategy extends java.lang.Object implements WaitStrategy
Modifier and Type | Field and Description |
---|---|
private java.util.concurrent.locks.Lock |
lock |
private java.util.concurrent.locks.Condition |
processorNotifyCondition |
private long |
timeoutInNanos |
Constructor and Description |
---|
TimeoutBlockingWaitStrategy(long timeout,
java.util.concurrent.TimeUnit units) |
Modifier and Type | Method and Description |
---|---|
void |
signalAllWhenBlocking()
Implementations should signal the waiting
EventProcessor s that the cursor has advanced. |
java.lang.String |
toString() |
long |
waitFor(long sequence,
Sequence cursorSequence,
Sequence dependentSequence,
SequenceBarrier barrier)
Wait for the given sequence to be available.
|
private final java.util.concurrent.locks.Lock lock
private final java.util.concurrent.locks.Condition processorNotifyCondition
private final long timeoutInNanos
public TimeoutBlockingWaitStrategy(long timeout, java.util.concurrent.TimeUnit units)
public long waitFor(long sequence, Sequence cursorSequence, Sequence dependentSequence, SequenceBarrier barrier) throws AlertException, java.lang.InterruptedException, TimeoutException
WaitStrategy
BatchEventProcessor
explicitly
handles this case and will signal a timeout if required.waitFor
in interface WaitStrategy
sequence
- to be waited on.cursorSequence
- the main sequence from ringbuffer. Wait/notify strategies will
need this as it's the only sequence that is also notified upon update.dependentSequence
- on which to wait.barrier
- the processor is waiting on.AlertException
- if the status of the Disruptor has changed.java.lang.InterruptedException
- if the thread is interrupted.TimeoutException
public void signalAllWhenBlocking()
WaitStrategy
EventProcessor
s that the cursor has advanced.signalAllWhenBlocking
in interface WaitStrategy
public java.lang.String toString()
toString
in class java.lang.Object