@Override
    public boolean waitFor(long timeout, TimeUnit unit) {
      for (TaskFuture<?> delegate : getDelegates()) {
        delegate.waitFor(timeout, unit);
      }
      return isDone();
    }
@Override
    public boolean waitFor(long timeout, TimeUnit unit)