private <T> CompletableFuture<T> iterateAsync(Function<PositionManager, CompletableFuture<T>> processor,
                                                @Nullable FileType fileType,
                                                boolean ignorePCE) {
    CompletableFuture<T> res = failedFuture(NoDataException.INSTANCE);
    for (PositionManager positionManager : myPositionManagers) {
      if (acceptsFileType(positionManager, fileType)) {
        res = res.exceptionallyCompose(e -> {
          Throwable unwrap = DebuggerUtilsAsync.unwrap(e);
          if (unwrap instanceof NoDataException) {
            if (!ignorePCE) {
              ProgressManager.checkCanceled();
            }
            return processor.apply(positionManager);
          }
          return failedFuture(unwrap);
        });
      }
    }
    return res;
  }
private <T> CompletableFuture<T> iterateAsync(Function<PositionManager, CompletableFuture<T>> processor,
                                                @Nullable FileType fileType,
                                                boolean ignorePCE)