public final class LiteBlockingWaitStrategy extends java.lang.Object implements WaitStrategy
BlockingWaitStrategy that attempts to elide conditional wake-ups when
the lock is uncontended. Shows performance improvements on microbenchmarks. However this
wait strategy should be considered experimental as I have not full proved the correctness of
the lock elision code.| Constructor and Description |
|---|
LiteBlockingWaitStrategy() |
| Modifier and Type | Method and Description |
|---|---|
void |
signalAllWhenBlocking()
Implementations should signal the waiting
EventProcessors 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.
|
public long waitFor(long sequence,
Sequence cursorSequence,
Sequence dependentSequence,
SequenceBarrier barrier)
throws AlertException,
java.lang.InterruptedException
WaitStrategyBatchEventProcessor explicitly
handles this case and will signal a timeout if required.waitFor in interface WaitStrategysequence - 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.public void signalAllWhenBlocking()
WaitStrategyEventProcessors that the cursor has advanced.signalAllWhenBlocking in interface WaitStrategypublic java.lang.String toString()
toString in class java.lang.ObjectCopyright © 2011 - 2018 LMAX Ltd. All Rights Reserved.