From 0b9b7c8ed5b3923e77f45af3c584b79220d82b29 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Mon, 5 Nov 2018 16:21:09 +0100 Subject: [PATCH] logic: Fixed race condition for threaded indexing where indexers don't start indexing when command queue was already stopped --- src/lib/data/indexer/TaskBuildIndex.cpp | 3 ++- testing/project_setup/java_sonargraph_manual/1_setup.sh | 0 testing/project_setup/java_sonargraph_manual/2_update.sh | 0 testing/project_setup/java_sonargraph_manual/3_teardown.sh | 0 4 files changed, 2 insertions(+), 1 deletion(-) mode change 100644 => 100755 testing/project_setup/java_sonargraph_manual/1_setup.sh mode change 100644 => 100755 testing/project_setup/java_sonargraph_manual/2_update.sh mode change 100644 => 100755 testing/project_setup/java_sonargraph_manual/3_teardown.sh diff --git a/src/lib/data/indexer/TaskBuildIndex.cpp b/src/lib/data/indexer/TaskBuildIndex.cpp index 02377bd4..73f51bb6 100644 --- a/src/lib/data/indexer/TaskBuildIndex.cpp +++ b/src/lib/data/indexer/TaskBuildIndex.cpp @@ -204,7 +204,7 @@ void TaskBuildIndex::runIndexerProcess(int processId, const std::wstring& logFil void TaskBuildIndex::runIndexerThread(int processId) { - while (!m_indexerCommandQueueStopped && !m_interrupted) + do { InterprocessIndexer indexer(m_appUUID, processId); indexer.work(); // this will only return if there are no indexer commands left in the queue @@ -214,6 +214,7 @@ void TaskBuildIndex::runIndexerThread(int processId) std::this_thread::sleep_for(std::chrono::milliseconds(200)); } } + while (!m_indexerCommandQueueStopped && !m_interrupted); { std::lock_guard lock(m_runningThreadCountMutex); diff --git a/testing/project_setup/java_sonargraph_manual/1_setup.sh b/testing/project_setup/java_sonargraph_manual/1_setup.sh old mode 100644 new mode 100755 diff --git a/testing/project_setup/java_sonargraph_manual/2_update.sh b/testing/project_setup/java_sonargraph_manual/2_update.sh old mode 100644 new mode 100755 diff --git a/testing/project_setup/java_sonargraph_manual/3_teardown.sh b/testing/project_setup/java_sonargraph_manual/3_teardown.sh old mode 100644 new mode 100755