From 0a003ceb0c2b0c2364c95be77b57833083cc7793 Mon Sep 17 00:00:00 2001 From: gscalamera <graziano.scalamera@elettra.eu> Date: Mon, 30 Jan 2023 12:33:06 +0100 Subject: [PATCH] Fix deadlock removing alarms --- src/AlarmHandler.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/AlarmHandler.cpp b/src/AlarmHandler.cpp index ff34b28..0acebd4 100644 --- a/src/AlarmHandler.cpp +++ b/src/AlarmHandler.cpp @@ -5867,17 +5867,17 @@ void AlarmHandler::put_signal_property() auto found = local_alarms.find(it2->first); if (found == local_alarms.end()) { - DEBUG_STREAM << __func__<<": DELETING '" << it2->first << "'" << endl; + DEBUG_STREAM << __func__<<": DELETING '" << it2->first << "' saved_alarms.size=" << saved_alarms.size() << endl; DECLARE_TIME_VAR t0, t1; GET_TIME(t0); alarms.delete_alarm_conf_db(it2->first); GET_TIME(t1); - DEBUG_STREAM << __func__ << ": DELETED '" <<it2->first << "' in " << ELAPSED(t0, t1) << " ms" << endl; - //savedlock->readerOut();//TODO: with boost shared lock to be released to take exclusive + DEBUG_STREAM << __func__ << ": DELETED '" <<it2->first << "' in " << ELAPSED(t0, t1) << " ms saved_alarms.size=" << saved_alarms.size() << endl; + savedlock->readerOut(); savedlock->writerIn(); saved_alarms.erase(it2); savedlock->writerOut(); - //savedlock->readerIn(); + savedlock->readerIn(); } } if(it2 != saved_alarms.end()) -- GitLab