@Override public T poll() { return host.get(); }
@Override public T get() { counter.subscription.forEach(s -> s.request(1)); return super.get(); } };
@Override public T get() { if(size()<maxConcurrency*3 && counter.subscription.size()>0) { counter.subscription.forEach(s -> s.request(1)); } T res = super.get(); return res; } };
@Override public void onComplete() { counter.active.decrementAndGet(); counter.subscription.remove(subscription); if (queue != null && counter.active.get() == 0) { if (counter.completable) { if(counter.closing.compareAndSet(false,true)) { counter.closed = true; queue.addContinuation(new Continuation( () -> { final List current = new ArrayList(); while (queue.size() > 0) { try { current.add(queue.get()); }catch(ClosedQueueException e){ break; } } throw new ClosedQueueException( current); })); queue.close(); } } } }
@Override public T poll() { return host.get(); }
@Override public T get() { counter.subscription.forEach(s -> s.request(1)); return super.get(); } };
@Override public T get() { counter.subscription.forEach(s -> s.request(1)); return super.get(); } };
@Override public T get() { if(size()<maxConcurrency*3 && counter.subscription.size()>0) { counter.subscription.forEach(s -> s.request(1)); } T res = super.get(); return res; } };
@Override public T get() { if(size()<maxConcurrency*3 && counter.subscription.size()>0) { counter.subscription.forEach(s -> s.request(1)); } T res = super.get(); return res; } };
@Override public void onComplete() { counter.active.decrementAndGet(); counter.subscription.remove(subscription); if (queue != null && counter.active.get() == 0) { if (counter.completable) { if(counter.closing.compareAndSet(false,true)) { counter.closed = true; queue.addContinuation(new Continuation( () -> { final List current = new ArrayList(); while (queue.size() > 0) { try { current.add(queue.get()); }catch(ClosedQueueException e){ break; } } throw new ClosedQueueException( current); })); queue.close(); } } } }
@Override public void onComplete() { counter.active.decrementAndGet(); counter.subscription.removeValue(subscription); if (queue != null && counter.active.get() == 0) { if (counter.completable) { if(counter.closing.compareAndSet(false,true)) { counter.closed = true; queue.addContinuation(new Continuation( () -> { final List current = new ArrayList(); while (queue.size() > 0) { try { current.add(queue.get()); }catch(ClosedQueueException e){ break; } } throw new ClosedQueueException( current); })); queue.close(); } } } }