diff --git a/src/plugins/qmljseditor/qmljssemantichighlighter.cpp b/src/plugins/qmljseditor/qmljssemantichighlighter.cpp index b7e98ad0b7c..8fac6e91ec9 100644 --- a/src/plugins/qmljseditor/qmljssemantichighlighter.cpp +++ b/src/plugins/qmljseditor/qmljssemantichighlighter.cpp @@ -560,8 +560,10 @@ void SemanticHighlighter::rerun(const QmlJSTools::SemanticInfo &semanticInfo) m_watcher.cancel(); m_startRevision = m_document->document()->revision(); - m_watcher.setFuture(Utils::runAsync(QThread::LowestPriority, - &SemanticHighlighter::run, this, semanticInfo)); + auto future = Utils::runAsync(QThread::LowestPriority, &SemanticHighlighter::run, + this, semanticInfo); + m_watcher.setFuture(future); + m_futureSynchronizer.addFuture(future); } void SemanticHighlighter::cancel() diff --git a/src/plugins/qmljseditor/qmljssemantichighlighter.h b/src/plugins/qmljseditor/qmljssemantichighlighter.h index 77ea2a7c122..ffa45bbaace 100644 --- a/src/plugins/qmljseditor/qmljssemantichighlighter.h +++ b/src/plugins/qmljseditor/qmljssemantichighlighter.h @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -89,6 +90,7 @@ private: QHash m_formats; QHash m_extraFormats; QVector m_diagnosticRanges; + QFutureSynchronizer m_futureSynchronizer; }; } // namespace QmlJSEditor