code: public synchronized Operation timeout(@Nullable final Long timeout) {
          this.timeout = timeout == null || timeout > 0 ? timeout : null;
          return this;
      }
docs: Sets the optional timeout for this operation in milliseconds. Passing null or a
  non-positive value will remove any timeout previously set.
  
  @param timeout
  the timeout; null or non-positive to reset
  @return this operation object for call chaining