@Override protected void upstreamClose(PushEvent< ? > close) { AbstractPushStreamImpl.this.upstreamClose(close); source.close(); } };
@Override protected void upstreamClose(PushEvent< ? > close) { AbstractPushStreamImpl.this.upstreamClose(close); source.close(); } };
@Override protected void upstreamClose(PushEvent< ? > close) { AbstractPushStreamImpl.this.upstreamClose(close); source.close(); } };
@Override protected void upstreamClose(PushEvent< ? > close) { if (closed.get() != CLOSED) { close(close.nodata(), false); } previous.upstreamClose(close); }
@Override protected void upstreamClose(PushEvent< ? > close) { if (closed.get() != CLOSED) { close(close.nodata(), false); } previous.upstreamClose(close); }
@Override protected void upstreamClose(PushEvent< ? > close) { if (closed.get() != CLOSED) { close(close.nodata(), false); } previous.upstreamClose(close); }
@Override public void close() { PushEvent<T> close = PushEvent.close(); if (close(close, true)) { upstreamClose(close); } }
@Override public void close() { PushEvent<T> close = PushEvent.close(); if (close(close, true)) { upstreamClose(close); } }
@Override public void close() { PushEvent<T> close = PushEvent.close(); if (close(close, true)) { upstreamClose(close); } }
void check(AtomicLong lastTime, long timeout) { long now = System.nanoTime(); long elapsed = now - lastTime.get(); if (elapsed < timeout) { promiseFactory.scheduledExecutor().schedule( () -> check(lastTime, timeout), timeout - elapsed, NANOSECONDS); } else { PushEvent<T> error = PushEvent.error(new TimeoutException()); close(error); // Upstream close is needed as we have no direct backpressure upstreamClose(error); } }
void check(AtomicLong lastTime, long timeout) { long now = System.nanoTime(); long elapsed = now - lastTime.get(); if (elapsed < timeout) { promiseFactory.scheduledExecutor().schedule( () -> check(lastTime, timeout), timeout - elapsed, NANOSECONDS); } else { PushEvent<T> error = PushEvent.error(new TimeoutException()); close(error); // Upstream close is needed as we have no direct backpressure upstreamClose(error); } }
void check(AtomicLong lastTime, long timeout) { long now = System.nanoTime(); long elapsed = now - lastTime.get(); if (elapsed < timeout) { promiseFactory.scheduledExecutor().schedule( () -> check(lastTime, timeout), timeout - elapsed, NANOSECONDS); } else { PushEvent<T> error = PushEvent.error(new TimeoutException()); close(error); // Upstream close is needed as we have no direct backpressure upstreamClose(error); } }
upstreamClose(close); upstreamClose(error); } finally { s.release(1);
upstreamClose(close); upstreamClose(error); } finally { s.release(1);
upstreamClose(close); upstreamClose(error); }));
upstreamClose(close); upstreamClose(error); } finally { s.release(1);
upstreamClose(close); upstreamClose(error); }));