public <T> ConcurrentOperation<T> add(Callable<T> callable) {
    ConcurrentOperation<T> concurrentOperation = new ConcurrentOperation(callable);
    toInvoke.add(concurrentOperation);
    allThreadsExecuted.set(false);

    return concurrentOperation;
  }
Adds a Callable to the concurrency rule to be run. Expectations for return values and thrown
exceptions, as well as any repetition of the thread should be added using ConcurrentOperation.

@param <T> the type returned by the Callable
@param callable a Callable to be run. If the Callable throws an exception that is not expected
       it will be thrown up to the test that the threads are run from.
@return concurrentOperation, the ConcurrentOperation that has been added to the rule
geode-junit/src/main/java/org/apache/geode/test/junit/rules/ConcurrencyRule.java