docs: private boolean waitForTasksToFinish() throws Exception {
          for (Future<Boolean> future : futures) {
              try {
                  if (!future.get()) {
                      cancel();
                      return false;
                  }
              } catch (Exception e) {
                  error.compareAndSet(null, e);
                  cancel();
                  throw e;
              }
          }
          return true;
      }