@Override
  public void compute() {
    try (AccessToken ignored = ThreadContext.installThreadContext(threadContext, true)) {
      if (failFastOnAcquireReadAction) {
        ((ApplicationImpl)ApplicationManager.getApplication()).executeByImpatientReader(()-> wrapInReadActionAndIndicator(this::execAndForkSubTasks));
      }
      else {
        wrapInReadActionAndIndicator(this::execAndForkSubTasks);
      }
    }
  }
@Override
  public void compute()