}
@Override
protected long runDisruptorPass() throws InterruptedException
{
MutableLong value = this.value;
final CountDownLatch latch = new CountDownLatch(1);
long expectedCount = ringBuffer.getMinimumGatingSequence() + ITERATIONS;
handler.reset(latch, expectedCount);
long start = System.currentTimeMillis();
final RingBuffer<ValueEvent> rb = ringBuffer;
for (long l = 0; l < ITERATIONS; l++)
{
value.set(l);
rb.publishEvent(Translator.INSTANCE, value);
}
latch.await();
long opsPerSecond = (ITERATIONS * 1000L) / (System.currentTimeMillis() - start);