code: public T completeAfter(long delay, TimeUnit unit)
      {
          Checks.notNull(unit, "TimeUnit");
          try
          {
              unit.sleep(delay);
              return complete();
          }
          catch (InterruptedException e)
          {
              throw new RuntimeException(e);
          }
      }
docs: Blocks the current Thread for the specified delay and calls {@link #complete()}
  when delay has been reached.
  <br>If the specified delay is negative this action will execute immediately. (see: {@link TimeUnit#sleep(long)})
  
  @param  delay
  The delay after which to execute a call to {@link #complete()}
  @param  unit
  The {@link java.util.concurrent.TimeUnit TimeUnit} which should be used
  (this will use {@link java.util.concurrent.TimeUnit#sleep(long) unit.sleep(delay)})
  
  @throws java.lang.IllegalArgumentException
  If the specified {@link java.util.concurrent.TimeUnit TimeUnit} is {@code null}
  @throws java.lang.RuntimeException
  If the sleep operation is interrupted
  
  @return The response value