diff --git a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp index e15fadb46db..cad20e189f1 100644 --- a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp @@ -30,6 +30,7 @@ #include #include +#include #include #include #include @@ -1284,9 +1285,9 @@ void QmakeProFile::asyncUpdate() if (!includedInExactParse()) m_readerExact->setExact(false); QmakeEvalInput input = evalInput(); - QFuture future = runAsync(ProjectExplorerPlugin::sharedThreadPool(), - QThread::LowestPriority, - &QmakeProFile::asyncEvaluate, this, input); + QFuture future = Utils::asyncRun(ProjectExplorerPlugin::sharedThreadPool(), + QThread::LowestPriority, + &QmakeProFile::asyncEvaluate, this, input); m_parseFutureWatcher->setFuture(future); } @@ -1630,9 +1631,9 @@ QmakeEvalResultPtr QmakeProFile::evaluate(const QmakeEvalInput &input) return result; } -void QmakeProFile::asyncEvaluate(QFutureInterface &fi, QmakeEvalInput input) +void QmakeProFile::asyncEvaluate(QPromise &promise, QmakeEvalInput input) { - fi.reportResult(evaluate(input)); + promise.addResult(evaluate(input)); } bool sortByParserNodes(Node *a, Node *b) diff --git a/src/plugins/qmakeprojectmanager/qmakeparsernodes.h b/src/plugins/qmakeprojectmanager/qmakeparsernodes.h index 34c4958564b..9296addfa80 100644 --- a/src/plugins/qmakeprojectmanager/qmakeparsernodes.h +++ b/src/plugins/qmakeprojectmanager/qmakeparsernodes.h @@ -336,7 +336,7 @@ private: static Internal::QmakeEvalResultPtr evaluate(const Internal::QmakeEvalInput &input); void applyEvaluate(const Internal::QmakeEvalResultPtr &parseResult); - void asyncEvaluate(QFutureInterface &fi, + void asyncEvaluate(QPromise &promise, Internal::QmakeEvalInput input); void cleanupProFileReaders(); diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 322e58c37d0..b4f1bea8dcd 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -40,15 +40,17 @@ #include #include +#include + #include #include #include #include #include +#include #include #include -#include #include #include @@ -923,9 +925,9 @@ const FilePath &QmakeBuildSystem::qmakeSysroot() const void QmakeBuildSystem::destroyProFileReader(QtSupport::ProFileReader *reader) { // The ProFileReader destructor is super expensive (but thread-safe). - const auto deleteFuture = runAsync(ProjectExplorerPlugin::sharedThreadPool(), QThread::LowestPriority, - [reader] { delete reader; }); - onFinished(deleteFuture, this, [this](const QFuture &) { + const auto deleteFuture = Utils::asyncRun(ProjectExplorerPlugin::sharedThreadPool(), + [reader] { delete reader; }); + Utils::onFinished(deleteFuture, this, [this](const QFuture &) { if (!--m_qmakeGlobalsRefCnt) { deregisterFromCacheManager(); m_qmakeGlobals.reset();