From fe42ebfde12bebebba79149aa655f81a3fb433ea Mon Sep 17 00:00:00 2001 From: Oleg Shparber Date: Tue, 28 Jul 2026 15:57:22 +0300 Subject: [PATCH] fix(core): remove docsets without blocking the UI (#1940) --- src/libs/core/filemanager.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/libs/core/filemanager.cpp b/src/libs/core/filemanager.cpp index 5407f1d9..7ac87441 100644 --- a/src/libs/core/filemanager.cpp +++ b/src/libs/core/filemanager.cpp @@ -5,14 +5,12 @@ #include "application.h" -#include #include #include #include -#include #include -#include +#include namespace Zeal::Core { @@ -48,17 +46,14 @@ bool FileManager::removeRecursively(const QString &path) qCDebug(log, "Renamed '%s' to '%s'.", qPrintable(path), qPrintable(deletePath)); - std::future f = std::async(std::launch::async, [deletePath]() { - return QDir(deletePath).removeRecursively(); - }); + std::thread([deletePath]() { + if (!QDir(deletePath).removeRecursively()) { + qCWarning(log, "Failed to remove '%s'.", qPrintable(deletePath)); + return; + } - f.wait(); - - if (!f.get()) { - qCWarning(log, "Failed to remove '%s'.", qPrintable(deletePath)); - } else { qCDebug(log, "Removed '%s'.", qPrintable(deletePath)); - } + }).detach(); return true; }