code: @Override
  	@Nullable
  	public O block(Duration timeout) {
  		long delay = System.nanoTime() + timeout.toNanos();
  		Runnable spinObserver = () -> {
  			if (delay < System.nanoTime()) {
  				WaitStrategy.alert();
  			}
  		};
  		return block(spinObserver);
  	}
docs: 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