From b0592abbf04280dc26f1c8f5936b69ff10fb7b5d Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Fri, 23 Feb 2024 17:24:44 +0100 Subject: [PATCH] DebuggerItemConfigWidget: Ensure the futures are synchronized Don't leave possibly running futures on Creator shutdown. Change-Id: I6f4253d657b2b61112c15c9c144be10fcc8ed0cf Reviewed-by: hjk --- src/plugins/debugger/debuggeritemmanager.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/plugins/debugger/debuggeritemmanager.cpp b/src/plugins/debugger/debuggeritemmanager.cpp index 2644e3fa125..b4fb2af2dea 100644 --- a/src/plugins/debugger/debuggeritemmanager.cpp +++ b/src/plugins/debugger/debuggeritemmanager.cpp @@ -9,6 +9,8 @@ #include #include +#include + #include #include #include @@ -19,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -480,14 +483,14 @@ void DebuggerItemConfigWidget::binaryPathHasChanged() if (!m_generic) { m_updateWatcher.cancel(); - DebuggerItem tmp; if (m_binaryChooser->filePath().isExecutableFile()) { - tmp = item(); - m_updateWatcher.setFuture(Utils::asyncRun([tmp]() mutable { + m_updateWatcher.setFuture(Utils::asyncRun([tmp = item()]() mutable { tmp.reinitializeFromFile(); return tmp; })); + ExtensionSystem::PluginManager::futureSynchronizer()->addFuture(m_updateWatcher.future()); } else { + const DebuggerItem tmp; setAbis(tmp.abiNames()); m_version->setText(tmp.version()); m_engineType = tmp.engineType();