diff options
author | Marco Bubke <marco.bubke@qt.io> | 2018-08-28 12:08:37 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2018-09-03 12:13:10 +0000 |
commit | a86867eb8a37c66f6eda36928208a82bb152b038 (patch) | |
tree | a1e1f5fe9de1cce0f9e4933cce0ff7b313e71ba5 /src/tools/clangrefactoringbackend/source/symbolindexertaskqueue.cpp | |
parent | 86cd29b13c5489e67dcbfa223ac3519a9c4c520c (diff) | |
download | qt-creator-a86867eb8a37c66f6eda36928208a82bb152b038.tar.gz |
Clang: Introduce parallel indexing
Change-Id: I522cb18e6d24b7dbed5d5dfa3a732e5b3b5113bb
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Diffstat (limited to 'src/tools/clangrefactoringbackend/source/symbolindexertaskqueue.cpp')
-rw-r--r-- | src/tools/clangrefactoringbackend/source/symbolindexertaskqueue.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/tools/clangrefactoringbackend/source/symbolindexertaskqueue.cpp b/src/tools/clangrefactoringbackend/source/symbolindexertaskqueue.cpp index aa4fd38215..4bfed1fe31 100644 --- a/src/tools/clangrefactoringbackend/source/symbolindexertaskqueue.cpp +++ b/src/tools/clangrefactoringbackend/source/symbolindexertaskqueue.cpp @@ -25,6 +25,8 @@ #include "symbolindexertaskqueue.h" +#include <symbolindexertaskschedulerinterface.h> + namespace ClangBackEnd { namespace { @@ -60,11 +62,6 @@ OutputIt set_union_merge(InputIt1 first1, } -SymbolIndexerTaskQueue::SymbolIndexerTaskQueue() -{ - -} - void SymbolIndexerTaskQueue::addOrUpdateTasks(std::vector<SymbolIndexerTask> &&tasks) { std::vector<SymbolIndexerTask> mergedTasks; @@ -133,7 +130,12 @@ std::vector<std::size_t> SymbolIndexerTaskQueue::projectPartNumberIds(const Util void SymbolIndexerTaskQueue::processTasks() { + int taskCount = m_symbolIndexerScheduler.freeSlots(); + auto newEnd = std::prev(m_tasks.end(), std::min<int>(taskCount, int(m_tasks.size()))); + m_symbolIndexerScheduler.addTasks({std::make_move_iterator(newEnd), + std::make_move_iterator(m_tasks.end())}); + m_tasks.erase(newEnd, m_tasks.end()); } } // namespace ClangBackEnd |