code: public final CountedCompleter<?> nextComplete() {
      CountedCompleter<?> p;
      if ((p = completer) != null)
        return p.firstComplete();
      else {
        quietlyComplete();
        return null;
      }
    }
docs: If this task does not have a completer, invokes {@link ForkJoinTask#quietlyComplete} and
  returns {@code null}. Or, if the completer's pending count is non-zero, decrements that pending
  count and returns {@code null}. Otherwise, returns the completer. This method can be used as
  part of a completion traversal loop for homogeneous task hierarchies:
  
  <pre>
  {@code
  for (CountedCompleter<?> c = firstComplete();
  c != null;
  c = c.nextComplete()) {
  // ... process c ...
  }}
  </pre>
  
  @return the completer, or {@code null} if none