diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index c85233e0c25..f02779acd70 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -712,6 +712,17 @@ QFuture CppModelManager::refreshSourceFiles(const QStringList &sourceFiles QFuture result = QtConcurrent::run(&CppModelManager::parse, preproc, sourceFiles); + if (m_synchronizer.futures().size() > 10) { + QList > futures = m_synchronizer.futures(); + + m_synchronizer.clearFutures(); + + foreach (QFuture future, futures) { + if (! (future.isFinished() || future.isCanceled())) + m_synchronizer.addFuture(future); + } + } + m_synchronizer.addFuture(result); if (sourceFiles.count() > 1) {