diff --git a/platform/lang-impl/src/com/intellij/util/indexing/unindexedFilesScannerStartup.kt b/platform/lang-impl/src/com/intellij/util/indexing/unindexedFilesScannerStartup.kt index 6b3046e591ca..eb2c6d96e98c 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/unindexedFilesScannerStartup.kt +++ b/platform/lang-impl/src/com/intellij/util/indexing/unindexedFilesScannerStartup.kt @@ -6,6 +6,7 @@ import com.intellij.openapi.application.readAction import com.intellij.openapi.application.readActionBlocking import com.intellij.openapi.project.Project import com.intellij.openapi.util.Key +import com.intellij.openapi.util.ThrowableComputable import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFileWithId @@ -145,11 +146,15 @@ private fun scheduleFullScanning( } else CompletableDeferred(Unit) val parameters = CompletableDeferred(ScanningIterators(indexingReason, null, null, fullScanningType)) - UnindexedFilesScanner(project, true, isFilterUpToDate, - someDirtyFilesScheduledForIndexing.asCompletableFuture(), - forceCheckingForOutdatedIndexesUsingFileModCount = notSeenIds !is AllNotSeenDirtyFileIds, - scanningParameters = parameters) - .queue() + ApplicationManager.getApplication().invokeAndWait { + ApplicationManager.getApplication().runWriteIntentReadAction(ThrowableComputable { // makes scanning to be scheduled immediately + UnindexedFilesScanner(project, true, isFilterUpToDate, + someDirtyFilesScheduledForIndexing.asCompletableFuture(), + forceCheckingForOutdatedIndexesUsingFileModCount = notSeenIds !is AllNotSeenDirtyFileIds, + scanningParameters = parameters) + .queue() + }) + } return someDirtyFilesScheduledForIndexing } @@ -173,10 +178,14 @@ private fun scheduleDirtyFilesScanning( DirtyFilesIndexableFilesIterator(projectDirtyFilesFromOrphanQueue, true)) val scanningIterators = CompletableDeferred(ScanningIterators(indexingReason, iterators, null, partialScanningType)) - UnindexedFilesScanner(project, true, true, - projectDirtyFiles.asCompletableFuture(), - scanningParameters = scanningIterators) - .queue() + ApplicationManager.getApplication().invokeAndWait { + ApplicationManager.getApplication().runWriteIntentReadAction(ThrowableComputable { // makes scanning to be scheduled immediately + UnindexedFilesScanner(project, true, true, + projectDirtyFiles.asCompletableFuture(), + scanningParameters = scanningIterators) + .queue() + }) + } return projectDirtyFiles }