diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2016-07-27 14:48:42 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2016-07-29 12:03:07 +0000 |
commit | ad49e64ff00259fc1967768695dd5e5a0ee65c96 (patch) | |
tree | a547e6df1fa35dc5ae69960f3936d070e058887c /src/plugins/cpptools/cppsourceprocessor.h | |
parent | c8020af9972ddc71be291f98ecfb97f5edda7a66 (diff) | |
download | qt-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/cppsourceprocessor.h')
-rw-r--r-- | src/plugins/cpptools/cppsourceprocessor.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppsourceprocessor.h b/src/plugins/cpptools/cppsourceprocessor.h index fdebc893c6..84ea034347 100644 --- a/src/plugins/cpptools/cppsourceprocessor.h +++ b/src/plugins/cpptools/cppsourceprocessor.h @@ -59,6 +59,9 @@ public: CppSourceProcessor(const CPlusPlus::Snapshot &snapshot, DocumentCallback documentFinished); ~CppSourceProcessor(); + using CancelChecker = std::function<bool()>; + void setCancelChecker(const CancelChecker &cancelChecker); + void setWorkingCopy(const CppTools::WorkingCopy &workingCopy); void setHeaderPaths(const ProjectPartHeaderPaths &headerPaths); void setLanguageFeatures(CPlusPlus::LanguageFeatures languageFeatures); |