@Override protected long handleEvent(PushEvent< ? extends T> event) { // If we have already been soft closed, or hard closed then abort if (!softClose.compareAndSet(false, event.isTerminal()) || closed.get() == CLOSED) { return ABORT; } try { queuePolicy.doOffer(eventQueue, event); long backPressure = pushbackPolicy.pushback(eventQueue); if(backPressure < 0) { close(); return ABORT; } if(semaphore.tryAcquire()) { startWorker(); } return backPressure; } catch (Exception e) { close(PushEvent.error(e)); return ABORT; } }
PushStream<T> stream = new BufferedPushStreamImpl<>(this, new PromiseFactory(workerToUse, timerToUse), queue, parallelism, queuePolicy,
PushStream<T> stream = new BufferedPushStreamImpl<>(this, new PromiseFactory(workerToUse, timerToUse), queue, parallelism, queuePolicy,
@Override protected long handleEvent(PushEvent< ? extends T> event) { // If we have already been soft closed, or hard closed then abort if (!softClose.compareAndSet(false, event.isTerminal()) || closed.get() == CLOSED) { return ABORT; } try { queuePolicy.doOffer(eventQueue, event); long backPressure = pushbackPolicy.pushback(eventQueue); if(backPressure < 0) { close(); return ABORT; } if(semaphore.tryAcquire()) { startWorker(); } return backPressure; } catch (Exception e) { close(PushEvent.error(e)); return ABORT; } }
PushStream<T> stream = new BufferedPushStreamImpl<>(this, new PromiseFactory(workerToUse, timerToUse), queue, parallelism, queuePolicy,
@Override protected long handleEvent(PushEvent< ? extends T> event) { // If we have already been soft closed, or hard closed then abort if (!softClose.compareAndSet(false, event.isTerminal()) || closed.get() == CLOSED) { return ABORT; } try { queuePolicy.doOffer(eventQueue, event); long backPressure = pushbackPolicy.pushback(eventQueue); if(backPressure < 0) { close(); return ABORT; } if(semaphore.tryAcquire()) { startWorker(); } return backPressure; } catch (Exception e) { close(PushEvent.error(e)); return ABORT; } }
close(); return; } else if(backpressure > 0) { close(PushEvent.error(e)); startWorker(); } catch (Exception e) { close(PushEvent.error(e));
close(); return; } else if(backpressure > 0) { close(PushEvent.error(e)); startWorker(); } catch (Exception e) { close(PushEvent.error(e));
close(); return; } else if(backpressure > 0) { close(PushEvent.error(e)); startWorker(); } catch (Exception e) { close(PushEvent.error(e));