void (@NotNull IndexingJob indexingJob, @NotNull FileIndexingJob fileIndexingJob, @NotNull FileIndexesValuesApplier applier, long startTime, long length, long contentLoadingTime) { signalThatFileIsUnloaded(length); long preparingTime = System.nanoTime() - startTime; applier.apply(fileIndexingJob.file, () -> { IndexingFileSetStatistics statistics = indexingJob.getStatistics(fileIndexingJob); synchronized (statistics) { var applicationTime = applier.getSeparateApplicationTimeNanos(); statistics.addFileStatistics(fileIndexingJob.file, applier.stats, preparingTime + applicationTime, contentLoadingTime, length, applicationTime ); } indexingJob.oneMoreFileProcessed(); doReleaseFile(fileIndexingJob.file); }, false); }