@Override protected long runDisruptorPass() throws InterruptedException { resetCounters(); RingBuffer<ValueEvent> ringBuffer = workerPool.start(EXECUTOR); long start = System.currentTimeMillis(); for (long i = 0; i < ITERATIONS; i++) { long sequence = ringBuffer.next(); ringBuffer.getPreallocated(sequence).setValue(i); ringBuffer.publish(sequence); } workerPool.drainAndHalt(); long opsPerSecond = (ITERATIONS * 1000L) / (System.currentTimeMillis() - start); assertEquals(ITERATIONS, sumCounters()); return opsPerSecond; }