public ConcurrentOperation repeatForDuration(Duration duration) {
      if (iterations != DEFAULT_ITERATIONS) {
        throw new IllegalArgumentException("Specify only Duration or Iterations");
      }

      this.duration = duration;
      return this;
    }
Sets a callable to be repeated for some duration. If there is also an expected result
for the callable, that expectation must be met for each iteration of the callable. The
callable will not be restarted after the duration has been met, however the current
iteration will be allowed to continue until the timeout is reached.

@param duration the Duration for which to repeat the callable
@return this, the ConcurrentOperation (containing a callable) that has been set to repeat
geode-junit/src/main/java/org/apache/geode/test/junit/rules/ConcurrencyRule.java