From 17ccb41d0334105252738d44126364f29c28791c Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Mon, 2 Sep 2024 21:06:01 +0200 Subject: [PATCH] avoid double mutex lock Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/c9c8652834dbcad4dbee6ac153d1b20dec72559d Author: Jacek Jendrzej Date: 2024-09-02 (Mon, 02 Sep 2024) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/driver/record.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 7eeddfbac..b1e8fdf60 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -1427,11 +1427,14 @@ int CRecordManager::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data #if 0 else if(data == check_timer) { if(CNeutrinoApp::getInstance()->getMode() != NeutrinoModes::mode_standby) { - mutex.lock(); int have_err = 0; - for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) - have_err |= it->second->GetStatus(); - mutex.unlock(); + bool locked = mutex.trylock(); + if (!locked) { + have_err = 0; + for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) + have_err |= it->second->GetStatus(); + mutex.unlock(); + } //printf("%s: check status: show err %d warn %d have_err %d\n", __FUNCTION__, error_display, warn_display, have_err); //FIXME if (have_err) { if ((have_err & REC_STATUS_OVERFLOW) && error_display) {