code: 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;
  		}
  	}
docs: 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