package com.epickrram.workshop.perf.support; import com.lmax.disruptor.AlertException; import com.lmax.disruptor.Sequence; import com.lmax.disruptor.SequenceBarrier; import com.lmax.disruptor.WaitStrategy; import org.performancehints.SpinHint; public final class SpinLoopHintBusySpinWaitStrategy implements WaitStrategy { @Override public long waitFor(final long sequence, Sequence cursor, final Sequence dependentSequence, final SequenceBarrier barrier) throws AlertException, InterruptedException { long availableSequence; while ((availableSequence = dependentSequence.get()) < sequence) { SpinHint.spinLoopHint(); barrier.checkAlert(); } return availableSequence; } @Override public void signalAllWhenBlocking() { } }