Skip to content
Snippets Groups Projects
Commit 0a651807 authored by Juergen Hannappel's avatar Juergen Hannappel
Browse files

fix thread synchronisation

parent 15e86942
No related branches found
No related tags found
2 merge requests!4Python driver and data analysis part,!2Threading fix
......@@ -38,9 +38,9 @@ void worker(const std::string& dataHandlerName,
timed::anchor idleAnchor("idle");
timed::anchor burstAnchor("burst");
timed::anchor waitAnchor("wait");
nArmed++;
{
std::unique_lock<decltype(syncMutexToMain)> lock(syncMutexToMain);
nArmed++;
syncCvToMain.notify_one();
}
{
......@@ -92,6 +92,7 @@ void worker(const std::string& dataHandlerName,
waitAnchor.write(outputDir, threadNo);
outputHandler->write(outputDir, threadNo);
} catch (const std::exception& e) {
std::unique_lock<decltype(syncMutexToMain)> lock(syncMutexToMain);
nArmed++;
syncCvToMain.notify_one();
std::cerr << "Oops: " << e.what() << "\n";
......@@ -136,6 +137,9 @@ int main(int argc, const char*argv[]) {
while (nArmed < nThreads) {
syncCvToMain.wait(lock);
}
}
{
std::unique_lock<decltype(syncMutexToWorker)> lock(syncMutexToWorker);
syncCvToWorker.notify_all();
}
auto firstThreadStart = std::chrono::system_clock::now();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment