docs: public Event<T> setResult(T result) {
          synchronized (this) {
              if (results == null) {
                  // Make sure that we have a valid result before
                  // calling decrementOpen
                  results = new ArrayList<T>();
                  results.add(result);
                  firstResultAssigned();
                  return this;
              }
              results.add(result);
              return this;
          }
      }