code: public S timeout(long timeout, TemporalUnit timeoutUnit) {
          if (0 > timeout) {
              this.timeout = null;
          } else {
              this.timeout = Duration.of(timeout, timeoutUnit);
          }
          return self();
      }
docs: Set the maximum amount of wallclock time that {@link #call()} will
  wait for the index to reach the target status.  If the index does
  not reach the target state in this interval, then {@link #call()}
  will return a report value indicating failure.
  <p>
  A negative {@code timeout} is interpreted to mean "wait forever"
  (no timeout).  In this case, the {@code timeoutUnit} is ignored.
  
  @param timeout the time duration scalar
  @param timeoutUnit the time unit
  @return this builder