From cd0ef57c1e06a9c5460cccc92d4b0cd461ede1d7 Mon Sep 17 00:00:00 2001 From: Konstantin Nisht Date: Wed, 19 Feb 2025 10:56:13 +0100 Subject: [PATCH] [threading] IJPL-178581: Use `Dispatchers.EDT` instead of `Dispatchers.Main` GitOrigin-RevId: a229eaa651f8480825ac1fe69ea47cdd9e88c96b --- .../ui/toolwindow/ReviewToolwindowTabsManager.kt | 2 +- .../intellij/coverage/actions/SuiteChooserTest.kt | 13 +++++++------ .../github/authentication/ui/GHLoginDialog.kt | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/platform/collaboration-tools/src/com/intellij/collaboration/ui/toolwindow/ReviewToolwindowTabsManager.kt b/platform/collaboration-tools/src/com/intellij/collaboration/ui/toolwindow/ReviewToolwindowTabsManager.kt index d624a01a4c98..e3e682c8937e 100644 --- a/platform/collaboration-tools/src/com/intellij/collaboration/ui/toolwindow/ReviewToolwindowTabsManager.kt +++ b/platform/collaboration-tools/src/com/intellij/collaboration/ui/toolwindow/ReviewToolwindowTabsManager.kt @@ -50,7 +50,7 @@ private class ReviewToolwindowTabsManager< ) { private val contentManager = toolwindow.contentManager private val projectVm = reviewToolwindowViewModel.projectVm - private val cs = parentCs.childScope(Dispatchers.Main) + private val cs = parentCs.childScope(Dispatchers.EDT) init { contentManager.addDataProvider(EdtNoGetDataProvider { sink -> diff --git a/plugins/coverage/testSrc/com/intellij/coverage/actions/SuiteChooserTest.kt b/plugins/coverage/testSrc/com/intellij/coverage/actions/SuiteChooserTest.kt index 00e02913266e..dd4cb750e870 100644 --- a/plugins/coverage/testSrc/com/intellij/coverage/actions/SuiteChooserTest.kt +++ b/plugins/coverage/testSrc/com/intellij/coverage/actions/SuiteChooserTest.kt @@ -3,6 +3,7 @@ package com.intellij.coverage.actions import com.intellij.coverage.CoverageIntegrationBaseTest import com.intellij.coverage.CoverageSuite +import com.intellij.openapi.application.EDT import com.intellij.openapi.application.WriteIntentReadAction import com.intellij.openapi.util.Disposer import com.intellij.ui.CheckboxTree @@ -88,7 +89,7 @@ class SuiteChooserTest : CoverageIntegrationBaseTest() { val dialog = openChooserDialog() collectSuiteNodes(dialog)[ijSuite]!!.isChecked = true - withContext(Dispatchers.Main) { + withContext(Dispatchers.EDT) { waitSuiteProcessing { WriteIntentReadAction.run { dialog.doOKAction() @@ -119,7 +120,7 @@ class SuiteChooserTest : CoverageIntegrationBaseTest() { suiteNodes[ijSuite]!!.isChecked = true suiteNodes[xmlSuite]!!.isChecked = true - withContext(Dispatchers.Main) { + withContext(Dispatchers.EDT) { waitSuiteProcessing { WriteIntentReadAction.run { dialog.doOKAction() @@ -156,7 +157,7 @@ class SuiteChooserTest : CoverageIntegrationBaseTest() { val suiteNodes = collectSuiteNodes(dialog) suiteNodes[ijSuite]!!.isChecked = false - withContext(Dispatchers.Main) { + withContext(Dispatchers.EDT) { WriteIntentReadAction.run { dialog.doOKAction() } @@ -180,7 +181,7 @@ class SuiteChooserTest : CoverageIntegrationBaseTest() { Assert.assertFalse(manager.activeSuites().isEmpty()) - withContext(Dispatchers.Main) { + withContext(Dispatchers.EDT) { val dialog = CoverageSuiteChooserDialog(myProject) dialog.NoCoverageAction().doAction(null) closeDialog(dialog) @@ -191,10 +192,10 @@ class SuiteChooserTest : CoverageIntegrationBaseTest() { } private suspend fun openChooserDialog(): CoverageSuiteChooserDialog = - withContext(Dispatchers.Main) { return@withContext CoverageSuiteChooserDialog(myProject) } + withContext(Dispatchers.EDT) { return@withContext CoverageSuiteChooserDialog(myProject) } private suspend fun closeDialog(dialog: CoverageSuiteChooserDialog) { - withContext(Dispatchers.Main) { + withContext(Dispatchers.EDT) { Disposer.dispose(dialog.disposable) } } diff --git a/plugins/github/github-core/src/org/jetbrains/plugins/github/authentication/ui/GHLoginDialog.kt b/plugins/github/github-core/src/org/jetbrains/plugins/github/authentication/ui/GHLoginDialog.kt index f4d09124b272..90da0d827ec0 100644 --- a/plugins/github/github-core/src/org/jetbrains/plugins/github/authentication/ui/GHLoginDialog.kt +++ b/plugins/github/github-core/src/org/jetbrains/plugins/github/authentication/ui/GHLoginDialog.kt @@ -56,7 +56,7 @@ internal sealed class GHLoginDialog( override fun doValidateAll(): List = loginPanel.doValidateAll() override fun doOKAction() { - cs.launch(Dispatchers.Main.immediate + ModalityState.stateForComponent(rootPane).asContextElement()) { + cs.launch(Dispatchers.EDT + ModalityState.stateForComponent(rootPane).asContextElement()) { try { val (login, token) = loginPanel.acquireLoginAndToken() model.saveLogin(loginPanel.getServer(), login, token)