From ad49e64ff00259fc1967768695dd5e5a0ee65c96 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Wed, 27 Jul 2016 14:48:42 +0200 Subject: 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 Reviewed-by: Tim Jenssen --- src/plugins/cpptools/cppsourceprocessor.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/plugins/cpptools/cppsourceprocessor.cpp') diff --git a/src/plugins/cpptools/cppsourceprocessor.cpp b/src/plugins/cpptools/cppsourceprocessor.cpp index f238a841f7..e04d977ebf 100644 --- a/src/plugins/cpptools/cppsourceprocessor.cpp +++ b/src/plugins/cpptools/cppsourceprocessor.cpp @@ -121,6 +121,11 @@ CppSourceProcessor::CppSourceProcessor(const Snapshot &snapshot, DocumentCallbac CppSourceProcessor::~CppSourceProcessor() { } +void CppSourceProcessor::setCancelChecker(const CppSourceProcessor::CancelChecker &cancelChecker) +{ + m_preprocess.setCancelChecker(cancelChecker); +} + void CppSourceProcessor::setWorkingCopy(const WorkingCopy &workingCopy) { m_workingCopy = workingCopy; } -- cgit v1.2.1