@Override public void run() { try { barrier.await(); if (0 != sleepTime) { Thread.sleep(sleepTime); } sequence.incrementAndGet(); waitStrategy.signalAllWhenBlocking(); } catch (Exception e) { e.printStackTrace(); } }
@SuppressWarnings("deprecation") private void assertHandleResetAndNotWrap(RingBuffer<StubEvent> rb) { Sequence sequence = new Sequence(); rb.addGatingSequences(sequence); for (int i = 0; i < 128; i++) { rb.publish(rb.next()); sequence.incrementAndGet(); } assertThat(rb.getCursor(), is(127L)); rb.resetTo(31); sequence.set(31); for (int i = 0; i < 4; i++) { rb.publish(rb.next()); } assertThat(rb.hasAvailableCapacity(1), is(false)); }
assertThat(poller.poll(handler), is(PollState.GATING)); gatingSequence.incrementAndGet(); assertThat(poller.poll(handler), is(PollState.PROCESSING));
pendingRequest.incrementAndGet(); pendingRequest.incrementAndGet(); if (!running.get()) throw CancelException.INSTANCE;
@Override public T take() throws InterruptedException { long l = consumedSeq.get() + 1; while (knownPublishedSeq < l) { try { knownPublishedSeq = barrier.waitFor(l); } catch (AlertException e) { throw new IllegalStateException(e); } catch (TimeoutException e) { throw new IllegalStateException(e); } } Event<T> eventHolder = ringBuffer.get(l); T t = eventHolder.removeValue(); consumedSeq.incrementAndGet(); return t; }
@Override public T poll() { long l = consumedSeq.get() + 1; if (l > knownPublishedSeq) { updatePublishedSequence(); } if (l <= knownPublishedSeq) { Event<T> eventHolder = ringBuffer.get(l); T t = eventHolder.removeValue(); consumedSeq.incrementAndGet(); return t; } return null; }
pendingRequest.incrementAndGet(); pendingRequest.incrementAndGet();