diff --git a/fairmq/FairMQChannel.cxx b/fairmq/FairMQChannel.cxx index 4644d016..521010e8 100644 --- a/fairmq/FairMQChannel.cxx +++ b/fairmq/FairMQChannel.cxx @@ -410,6 +410,20 @@ void FairMQChannel::UpdateRateLogging(const int rateLogging) } } +auto FairMQChannel::SetModified(const bool modified) -> void +{ + try + { + unique_lock lock(fChannelMutex); + fModified = modified; + } + catch (exception& e) + { + LOG(ERROR) << "Exception caught in FairMQChannel::SetModified: " << e.what(); + exit(EXIT_FAILURE); + } +} + bool FairMQChannel::IsValid() const { try diff --git a/fairmq/FairMQChannel.h b/fairmq/FairMQChannel.h index 57723d43..2dc5095d 100644 --- a/fairmq/FairMQChannel.h +++ b/fairmq/FairMQChannel.h @@ -270,6 +270,7 @@ class FairMQChannel static std::atomic fInterrupted; bool fMultipart; bool fModified; + auto SetModified(const bool modified) -> void; bool fReset; }; diff --git a/fairmq/FairMQDevice.cxx b/fairmq/FairMQDevice.cxx index c1145963..725309c6 100644 --- a/fairmq/FairMQDevice.cxx +++ b/fairmq/FairMQDevice.cxx @@ -129,7 +129,7 @@ void FairMQDevice::AttachChannels(list& chans) if (AttachChannel(**itr)) { (*itr)->InitCommandInterface(); - (*itr)->fModified = false; + (*itr)->SetModified(false); chans.erase(itr++); } else