avoid synchronous ensureUpToDate to prevent deadlock

This commit is contained in:
Maxim.Mossienko
2017-06-30 13:33:01 +02:00
parent f060333ade
commit 2da7026844
@@ -1938,13 +1938,15 @@ public class FileBasedIndexImpl extends FileBasedIndex implements BaseComponent,
!PowerSaveMode.isEnabled()) {
myScheduledVfsEventsWorkers.incrementAndGet();
myVfsEventsExecutor.submit(this::processFilesInReadActionWithYieldingToWriteAction);
for(Project project:ProjectManager.getInstance().getOpenProjects()) {
DumbServiceImpl dumbService = DumbServiceImpl.getInstance(project);
DumbModeTask task = FileBasedIndexProjectHandler.createChangedFilesIndexingTask(project);
if (task != null) {
dumbService.queueTask(task);
if (!ApplicationManager.getApplication().isHeadlessEnvironment()) { // avoid synchronous ensureUpToDate to prevent deadlock
for(Project project:ProjectManager.getInstance().getOpenProjects()) {
DumbServiceImpl dumbService = DumbServiceImpl.getInstance(project);
DumbModeTask task = FileBasedIndexProjectHandler.createChangedFilesIndexingTask(project);
if (task != null) {
dumbService.queueTask(task);
}
}
}
}