code: public List<T> results() throws InterruptedException {
          while (true) {
              synchronized (this) {
                  if (completed) {
                      return results == null ? Collections.emptyList()
                          : Collections.unmodifiableList(results);
                  }
                  wait();
              }
          }
      }
docs: Waits for the event to be completed (see {@link #isDone()})
  and returns the list of results (which may be empty if the
  event's result type is {@link Void}).
  
  @return the results
  @see Future#get()