From 69d269d71864840f96964bd3bf020125971ea4af Mon Sep 17 00:00:00 2001 From: Yohann Bearzi <yohann.bearzi@kitware.com> Date: Mon, 14 Aug 2023 10:21:17 -0400 Subject: [PATCH] vtkThreadedCallbackQueue: fixing rare deadlock `NumberOfThreads` update must be done under a lock so threads waiting are ensured to see the new size. --- Parallel/Core/vtkThreadedCallbackQueue.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Parallel/Core/vtkThreadedCallbackQueue.cxx b/Parallel/Core/vtkThreadedCallbackQueue.cxx index 5c88259051c..07dd38404cf 100644 --- a/Parallel/Core/vtkThreadedCallbackQueue.cxx +++ b/Parallel/Core/vtkThreadedCallbackQueue.cxx @@ -171,7 +171,10 @@ void vtkThreadedCallbackQueue::SetNumberOfThreads(int numberOfThreads) } } - this->NumberOfThreads = numberOfThreads; + { + std::lock_guard<std::mutex> lock(this->Mutex); + this->NumberOfThreads = numberOfThreads; + } this->ConditionVariable.notify_all(); this->Sync(this->NumberOfThreads); -- GitLab