code: public void complete(V value) {
          try {
              setRawResult(value);
          } catch (Throwable rex) {
              setExceptionalCompletion(rex);
              return;
          }
          setCompletion(NORMAL);
      }
docs: Completes this task, and if not already aborted or cancelled,
  returning the given value as the result of subsequent
  invocations of {@code join} and related operations. This method
  may be used to provide results for asynchronous tasks, or to
  provide alternative handling for tasks that would not otherwise
  complete normally. Its use in other situations is
  discouraged. This method is overridable, but overridden
  versions must invoke {@code super} implementation to maintain
  guarantees.
  
  @param value the result value for this task