Acquire write lock (IDEA-289174)

GitOrigin-RevId: 4b69be16c1c542c22a37dc67707b8e7c6a5c9a05
This commit is contained in:
Semyon Proshev
2022-02-22 15:06:41 +03:00
committed by intellij-monorepo-bot
parent e58b4e02aa
commit 1e146dcf7b

View File

@@ -4,6 +4,7 @@ package com.jetbrains.python.inspections;
import com.intellij.facet.FacetManager;
import com.intellij.ide.CommandLineInspectionProgressReporter;
import com.intellij.ide.CommandLineInspectionProjectConfigurator;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ReadAction;
import com.intellij.openapi.module.Module;
@@ -101,7 +102,7 @@ public class PythonPluginCommandLineInspectionProjectConfigurator implements Com
: detectedSdk;
if (sdk != null) {
ApplicationManager.getApplication().invokeLaterOnWriteThread(() -> ProjectJdkTable.getInstance().addJdk(sdk));
invokeLaterOnWriteThreadUnderLock(() -> ProjectJdkTable.getInstance().addJdk(sdk));
}
return sdk;
@@ -130,10 +131,12 @@ public class PythonPluginCommandLineInspectionProjectConfigurator implements Com
if (facet == null) {
logger.reportMessage(3, "Setting Python facet for: " + m.getName());
ApplicationManager.getApplication().invokeLaterOnWriteThread(() -> {
final PythonFacet addedFacet = facetManager.addFacet(facetType, facetType.getPresentableName(), null);
PySdkExtKt.excludeInnerVirtualEnv(m, addedFacet.getConfiguration().getSdk());
});
invokeLaterOnWriteThreadUnderLock(
() -> {
final PythonFacet addedFacet = facetManager.addFacet(facetType, facetType.getPresentableName(), null);
PySdkExtKt.excludeInnerVirtualEnv(m, addedFacet.getConfiguration().getSdk());
}
);
}
else {
logger.reportMessage(3, "Python facet already here: " + m.getName());
@@ -145,4 +148,9 @@ public class PythonPluginCommandLineInspectionProjectConfigurator implements Com
"Skipped Python interpreter configuration for " + skippedModules + " module(s) because they don't contain any Python files"
);
}
private static void invokeLaterOnWriteThreadUnderLock(@NotNull Runnable runnable) {
final Application application = ApplicationManager.getApplication();
application.invokeLaterOnWriteThread(() -> application.runWriteAction(runnable));
}
}