CMakeProjectManager: Use QtConcurrent invocation for async run

Change-Id: I03b23a6bd32bfaa435ddddab1a7ab47a5203ff44
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Jarek Kobus
2023-03-03 22:06:23 +01:00
parent ab523ee083
commit 4ae94a9910
3 changed files with 15 additions and 10 deletions

View File

@@ -5,7 +5,6 @@
#include "cmakeprocess.h"
#include "cmakeprojectmanagertr.h"
#include "cmakeprojectplugin.h"
#include "cmakespecificsettings.h"
#include "fileapidataextractor.h"
#include "fileapiparser.h"
@@ -15,6 +14,7 @@
#include <projectexplorer/projectexplorer.h>
#include <utils/algorithm.h>
#include <utils/asynctask.h>
#include <utils/qtcassert.h>
#include <utils/runextensions.h>
@@ -235,11 +235,11 @@ void FileApiReader::endState(const FilePath &replyFilePath, bool restoredFromBac
m_lastReplyTimestamp = replyFilePath.lastModified();
m_future = runAsync(ProjectExplorerPlugin::sharedThreadPool(),
m_future = Utils::asyncRun(ProjectExplorerPlugin::sharedThreadPool(),
[replyFilePath, sourceDirectory, buildDirectory, cmakeBuildType](
QFutureInterface<std::shared_ptr<FileApiQtcData>> &fi) {
QPromise<std::shared_ptr<FileApiQtcData>> &promise) {
auto result = std::make_shared<FileApiQtcData>();
FileApiData data = FileApiParser::parseData(fi,
FileApiData data = FileApiParser::parseData(promise,
replyFilePath,
cmakeBuildType,
result->errorMessage);
@@ -248,7 +248,7 @@ void FileApiReader::endState(const FilePath &replyFilePath, bool restoredFromBac
else
qWarning() << result->errorMessage;
fi.reportResult(result);
promise.addResult(result);
});
onResultReady(m_future.value(),
this,