reactor-core/src/main/java/reactor/core/publisher/MonoProcessor.java
@Override
	@Nullable
	public O block(Duration timeout) {
		long delay = System.nanoTime() + timeout.toNanos();
		Runnable spinObserver = () -> {
			if (delay < System.nanoTime()) {
				WaitStrategy.alert();
			}
		};
		return block(spinObserver);
	}
@Override
	@Nullable
	public O block(Duration timeout) {
		long delay = System.nanoTime() + timeout.toNanos();
		Runnable spinObserver = () -> {
			if (delay < System.nanoTime()) {
				WaitStrategy.alert();
			}
		};
		return block(spinObserver);
	}
Block the calling thread for the specified time, waiting for the completion of this {@code MonoProcessor}. If the
{@link MonoProcessor} is completed with an error a RuntimeException that wraps the error is thrown.

@param timeout the timeout value as a {@link Duration}

@return the value of this {@code MonoProcessor} or {@code null} if the timeout is reached and the {@code MonoProcessor} has
not completed