docs: public List<T> results() throws InterruptedException {
          while (true) {
              synchronized (this) {
                  if (completed) {
                      return results == null ? Collections.emptyList()
                          : Collections.unmodifiableList(results);
                  }
                  wait();
              }
          }
      }