From 9e9e4e26bcadb046e974ce780e10d1c467ae8df5 Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Fri, 13 Jan 2023 11:44:31 +0100 Subject: [PATCH] IJPL-83 assert plugin scopes are cancelled similar to project/app GitOrigin-RevId: 2aa46992f9ee960052aea6f87a7b0e3bbd7885f8 --- .../src/com/intellij/ide/plugins/DynamicPlugins.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt b/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt index cb728a8e9c29..8eb541648a99 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt +++ b/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt @@ -560,7 +560,12 @@ object DynamicPlugins { @OptIn(DelicateCoroutinesApi::class) val waitForCompletion = GlobalScope.launch { for (classLoader in classLoaders) { - classLoader.pluginCoroutineScope.coroutineContext.job.join() + val pluginJob = classLoader.pluginCoroutineScope.coroutineContext.job + if (!pluginJob.isCancelled) { + LOG.error("Plugin scope is expected to be cancelled during unloading") + pluginJob.cancel() + } + pluginJob.join() } } while (waitForCompletion.isActive) {