summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/baseeditordocumentparser.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2016-07-27 14:48:42 +0200
committerTim Jenssen <tim.jenssen@qt.io>2016-07-29 12:03:07 +0000
commitad49e64ff00259fc1967768695dd5e5a0ee65c96 (patch)
treea547e6df1fa35dc5ae69960f3936d070e058887c /src/plugins/cpptools/baseeditordocumentparser.cpp
parentc8020af9972ddc71be291f98ecfb97f5edda7a66 (diff)
downloadqt-creator-ad49e64ff00259fc1967768695dd5e5a0ee65c96.tar.gz
CppTools: Cancel parsing if editor is closed
The m_parserFuture.cancel() in ~BuiltinEditorDocumentProcessor() did not cancel anything. Thus, closing a document while the parser was running led to a blocking UI thread. Now it cancels at the next include directive it encounters. Change-Id: I092fddbbd747e0bc95265b6e9b4fcc26b3f76cb3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/plugins/cpptools/baseeditordocumentparser.cpp')
-rw-r--r--src/plugins/cpptools/baseeditordocumentparser.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/cpptools/baseeditordocumentparser.cpp b/src/plugins/cpptools/baseeditordocumentparser.cpp
index 4a216e17ae..ee3b8bec5c 100644
--- a/src/plugins/cpptools/baseeditordocumentparser.cpp
+++ b/src/plugins/cpptools/baseeditordocumentparser.cpp
@@ -78,8 +78,15 @@ void BaseEditorDocumentParser::setConfiguration(const Configuration &configurati
void BaseEditorDocumentParser::update(const WorkingCopy &workingCopy)
{
+ QFutureInterface<void> dummy;
+ update(dummy, workingCopy);
+}
+
+void BaseEditorDocumentParser::update(const QFutureInterface<void> &future,
+ const WorkingCopy &workingCopy)
+{
QMutexLocker locker(&m_updateIsRunning);
- updateHelper(workingCopy);
+ updateHelper(future, workingCopy);
}
BaseEditorDocumentParser::State BaseEditorDocumentParser::state() const