From 7ea4ca00dcdbd38925ed473f16b76c2e2a538eda Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sun, 11 Feb 2018 21:06:51 -0500 Subject: [PATCH] Ensures `perform_parallel` doesn't lock up if all machines complete prior to reaching `condition.wait`. --- .../Dynamic/MultiMachine/Implementation/MultiCRTMachine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Analyser/Dynamic/MultiMachine/Implementation/MultiCRTMachine.cpp b/Analyser/Dynamic/MultiMachine/Implementation/MultiCRTMachine.cpp index d7f33104d..1d24ac088 100644 --- a/Analyser/Dynamic/MultiMachine/Implementation/MultiCRTMachine.cpp +++ b/Analyser/Dynamic/MultiMachine/Implementation/MultiCRTMachine.cpp @@ -42,7 +42,7 @@ void MultiCRTMachine::perform_parallel(const std::function lock(mutex); - condition.wait(lock, [&outstanding_machines] { return !outstanding_machines; }); + if(outstanding_machines) condition.wait(lock, [&outstanding_machines] { return !outstanding_machines; }); } void MultiCRTMachine::perform_serial(const std::function &function) {