@Override public void signalAllWhenBlocking() { fallbackStrategy.signalAllWhenBlocking(); } }
@Override public long waitFor(final long sequence) throws AlertException, InterruptedException, TimeoutException { checkAlert(); long availableSequence = waitStrategy.waitFor(sequence, cursorSequence, dependentSequence, this); if (availableSequence < sequence) { return availableSequence; } return sequencer.getHighestPublishedSequence(sequence, availableSequence); }
@Override public long tryWaitFor(long sequence, long spin) throws AlertException, InterruptedException, TimeoutException { checkAlert(); long availableSequence = waitStrategy.tryWaitFor(sequence, cursorSequence, dependentSequence, this, spin); if (availableSequence < sequence) { return availableSequence; } return sequencer.getHighestPublishedSequence(sequence, availableSequence); }
@Override public void alert() { alerted = true; waitStrategy.signalAllWhenBlocking(); }
if (timeDelta > yieldTimeoutNanos) return fallbackStrategy.waitFor(sequence, cursor, dependentSequence, barrier);
/** * @see Sequencer#publish(long) */ @Override public void publish(final long sequence) { setAvailable(sequence); waitStrategy.signalAllWhenBlocking(); }
public static void assertWaitForWithDelayOf(long sleepTimeMillis, WaitStrategy waitStrategy) throws InterruptedException, BrokenBarrierException, AlertException, TimeoutException { SequenceUpdater sequenceUpdater = new SequenceUpdater(sleepTimeMillis, waitStrategy); EXECUTOR.execute(sequenceUpdater); sequenceUpdater.waitForStartup(); Sequence cursor = new Sequence(0); long sequence = waitStrategy.waitFor(0, cursor, sequenceUpdater.sequence, new DummySequenceBarrier()); assertThat(sequence, is(0L)); } }
/** * @see Sequencer#publish(long, long) */ @Override public void publish(long lo, long hi) { for (long l = lo; l <= hi; l++) { setAvailable(l); } waitStrategy.signalAllWhenBlocking(); }
@Override public long waitFor(final long sequence) throws AlertException, InterruptedException, TimeoutException { checkAlert(); long availableSequence = waitStrategy.waitFor(sequence, cursorSequence, dependentSequence, this); if (availableSequence < sequence) { return availableSequence; } return sequencer.getHighestPublishedSequence(sequence, availableSequence); }
/** * @see Sequencer#publish(long) */ @Override public void publish(long sequence) { cursor.set(sequence); waitStrategy.signalAllWhenBlocking(); }
if (timeDelta > yieldTimeoutNanos) return fallbackStrategy.waitFor(sequence, cursor, dependentSequence, barrier);
/** * @see Sequencer#publish(long) */ @Override public void publish(final long sequence) { setAvailable(sequence); waitStrategy.signalAllWhenBlocking(); }
@Override public long waitFor(long sequence, Sequence cursor, Sequence dependentSequence, SequenceBarrier barrier) throws AlertException, InterruptedException, TimeoutException { return currentStrategy.waitFor(sequence, cursor, dependentSequence, barrier); }
/** * @see Sequencer#publish(long) */ @Override public void publish(long sequence) { cursor.set(sequence); waitStrategy.signalAllWhenBlocking(); }
@Override public long waitFor(final long sequence) throws AlertException, InterruptedException, TimeoutException { checkAlert(); long availableSequence = waitStrategy.waitFor(sequence, cursorSequence, dependentSequence, this); if (availableSequence < sequence) { return availableSequence; } return sequencer.getHighestPublishedSequence(sequence, availableSequence); }
/** * @see Sequencer#publish(long, long) */ @Override public void publish(long lo, long hi) { for (long l = lo; l <= hi; l++) { setAvailable(l); } waitStrategy.signalAllWhenBlocking(); }
@Override public long waitFor(final long sequence) throws AlertException, InterruptedException, TimeoutException { checkAlert(); long availableSequence = waitStrategy.waitFor(sequence, cursorSequence, dependentSequence, this); if (availableSequence < sequence) { return availableSequence; } return sequencer.getHighestPublishedSequence(sequence, availableSequence); }
@Override public void run() { try { barrier.await(); if (0 != sleepTime) { Thread.sleep(sleepTime); } sequence.incrementAndGet(); waitStrategy.signalAllWhenBlocking(); } catch (Exception e) { e.printStackTrace(); } }
@Override public long waitFor(final long sequence) throws AlertException, InterruptedException, TimeoutException { checkAlert(); long availableSequence = waitStrategy.waitFor(sequence, cursorSequence, dependentSequence, this); if (availableSequence < sequence) { return availableSequence; } return sequencer.getHighestPublishedSequence(sequence, availableSequence); }
@Override public void signalAllWhenBlocking() { fallbackStrategy.signalAllWhenBlocking(); } }