@Override public boolean isTerminated() { return done && getPending() == 0; }
@Override @Nullable public Object scanUnsafe(Attr key) { if (key == Attr.PARENT) return s; if (key == Attr.BUFFERED) return getPending(); if (key == Attr.CANCELLED) return isCancelled(); if (key == Attr.PREFETCH) return getPrefetch(); return super.scanUnsafe(key); }
@Test public void state(){ EmitterProcessor<Integer> tp = EmitterProcessor.create(); assertThat(tp.getPending()).isEqualTo(0); assertThat(tp.getBufferSize()).isEqualTo(Queues.SMALL_BUFFER_SIZE); assertThat(tp.isCancelled()).isFalse(); s.next(3); s.next(4); assertThat(tp.getPending()).isEqualTo(0); AtomicReference<Subscription> d2 = new AtomicReference<>(); tp.subscribe(new CoreSubscriber<Integer>() {
@Override public boolean isTerminated() { return done && getPending() == 0; }
@Override @Nullable public Object scanUnsafe(Attr key) { if (key == Attr.PARENT) return s; if (key == Attr.BUFFERED) return getPending(); if (key == Attr.CANCELLED) return isCancelled(); if (key == Attr.PREFETCH) return getPrefetch(); return super.scanUnsafe(key); }