com.lmax.disruptor
Class BlockingWaitStrategy

java.lang.Object
  extended by com.lmax.disruptor.BlockingWaitStrategy
All Implemented Interfaces:
WaitStrategy

public final class BlockingWaitStrategy
extends java.lang.Object
implements WaitStrategy

Blocking strategy that uses a lock and condition variable for EventProcessors waiting on a barrier. This strategy can be used when throughput and low-latency are not as important as CPU resource.


Constructor Summary
BlockingWaitStrategy()
           
 
Method Summary
 void signalAllWhenBlocking()
          Signal those EventProcessors waiting that the cursor has advanced.
 long waitFor(long sequence, Sequence cursor, Sequence[] dependents, SequenceBarrier barrier)
          Wait for the given sequence to be available
 long waitFor(long sequence, Sequence cursor, Sequence[] dependents, SequenceBarrier barrier, long timeout, java.util.concurrent.TimeUnit sourceUnit)
          Wait for the given sequence to be available with a timeout specified.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BlockingWaitStrategy

public BlockingWaitStrategy()
Method Detail

waitFor

public long waitFor(long sequence,
                    Sequence cursor,
                    Sequence[] dependents,
                    SequenceBarrier barrier)
             throws AlertException,
                    java.lang.InterruptedException
Description copied from interface: WaitStrategy
Wait for the given sequence to be available

Specified by:
waitFor in interface WaitStrategy
Parameters:
sequence - to be waited on.
cursor - on which to wait.
dependents - further back the chain that must advance first
barrier - the processor is waiting on.
Returns:
the sequence that is available which may be greater than the requested sequence.
Throws:
AlertException - if the status of the Disruptor has changed.
java.lang.InterruptedException - if the thread is interrupted.

waitFor

public long waitFor(long sequence,
                    Sequence cursor,
                    Sequence[] dependents,
                    SequenceBarrier barrier,
                    long timeout,
                    java.util.concurrent.TimeUnit sourceUnit)
             throws AlertException,
                    java.lang.InterruptedException
Description copied from interface: WaitStrategy
Wait for the given sequence to be available with a timeout specified.

Specified by:
waitFor in interface WaitStrategy
Parameters:
sequence - to be waited on.
cursor - on which to wait.
dependents - further back the chain that must advance first
barrier - the processor is waiting on.
timeout - value to abort after.
sourceUnit - of the timeout value.
Returns:
the sequence that is available which may be greater than the requested sequence.
Throws:
AlertException - if the status of the Disruptor has changed.
java.lang.InterruptedException - if the thread is interrupted.

signalAllWhenBlocking

public void signalAllWhenBlocking()
Description copied from interface: WaitStrategy
Signal those EventProcessors waiting that the cursor has advanced.

Specified by:
signalAllWhenBlocking in interface WaitStrategy


Copyright © 2011 LMAX Ltd. All Rights Reserved.