reactor-core/src/main/java/reactor/core/publisher/EventLoopProcessor.java
public final boolean awaitAndShutdown(Duration timeout) {
		long nanos = -1;
		if (!timeout.isNegative()) {
			nanos = timeout.toNanos();
		}
		try {
			shutdown();
			return executor.awaitTermination(nanos, TimeUnit.NANOSECONDS);
		} catch (InterruptedException ie) {
			Thread.currentThread().interrupt();
			return false;
		}
	}
public final boolean awaitAndShutdown(Duration timeout) {
		long nanos = -1;
		if (!timeout.isNegative()) {
			nanos = timeout.toNanos();
		}
		try {
			shutdown();
			return executor.awaitTermination(nanos, TimeUnit.NANOSECONDS);
		} catch (InterruptedException ie) {
			Thread.currentThread().interrupt();
			return false;
		}
	}
Block until all submitted tasks have completed, then do a normal {@code EventLoopProcessor#dispose()}.
@param timeout the timeout value as a {@link java.time.Duration}. Note this is converted to a {@link Long}
of nanoseconds (which amounts to roughly 292 years maximum timeout).
@return if the underlying executor terminated and false if the timeout elapsed before termination