EventLoopProcessor extends FluxProcessor<IN, IN> implements Runnable { @Override final public void onError(Throwable t) { Objects.requireNonNull(t, "onError"); if (TERMINATED.compareAndSet(this, 0, SHUTDOWN)) { error = t; upstreamSubscription = null; doError(t); executor.shutdown(); readWait.signalAllWhenBlocking(); } else { Operators.onErrorDropped(t, Context.empty()); } } EventLoopProcessor(
			int bufferSize,
			@Nullable ThreadFactory threadFactory,
			@Nullable ExecutorService executor,
			ExecutorService requestExecutor,
			boolean autoCancel,
			boolean multiproducers,
			Supplier<Slot<IN>> factory,
			WaitStrategy strategy); abstract long getPending(); @Override @Nullable Object scanUnsafe(Attr key); final boolean alive(); final boolean awaitAndShutdown(); @Deprecated final boolean awaitAndShutdown(long timeout, TimeUnit timeUnit); final boolean awaitAndShutdown(Duration timeout); @Override Stream<? extends Scannable> inners(); Flux<IN> drain(); final Flux<IN> forceShutdown(); final long getAvailableCapacity(); @Override @Nullable final Throwable getError(); @Override final String toString(); @Override final int hashCode(); @Override boolean isSerialized(); @Override final boolean isTerminated(); @Override final void onComplete(); @Override final void onError(Throwable t); @Override final void onNext(IN o); @Override final void onSubscribe(final Subscription s); final void shutdown(); @Override final int getBufferSize(); @Override long downstreamCount();  }
@Test public void scanMain() { assertThat(test.scan(PARENT)).isNull(); assertThat(test.scan(TERMINATED)).isFalse(); test.onError(new IllegalStateException("boom")); assertThat(test.scan(TERMINATED)).isTrue(); assertThat(test.scan(ERROR)).hasMessage("boom"); assertThat(test.scan(Scannable.Attr.CAPACITY)).isEqualTo(128); }