diff options
-rw-r--r-- | icetray/icetray/logger.cpp | 19 | ||||
-rw-r--r-- | icetray/icetray/logger.h | 1 |
2 files changed, 12 insertions, 8 deletions
diff --git a/icetray/icetray/logger.cpp b/icetray/icetray/logger.cpp index 5e17af5..fadb0a4 100644 --- a/icetray/icetray/logger.cpp +++ b/icetray/icetray/logger.cpp @@ -126,16 +126,22 @@ namespace IceTray { } void + LogManager::updateLoggerWriters() const + { + for (auto logger : loggers) { + Lock(logger->_lock); + logger->logs = getLogsForDomain(logger->domain); + } + } + + void LogManager::addWriter(LogWriterPrx writer) { UpgradableLock(_lock, l); UpgradeScopeLock(l) { logWriters.insert(writer); } - for (auto logger : loggers) { - Lock(logger->_lock); - logger->logs = getLogsForDomain(logger->domain); - } + updateLoggerWriters(); } void @@ -145,10 +151,7 @@ namespace IceTray { UpgradeScopeLock(l) { logWriters.erase(writer); } - for (auto logger : loggers) { - Lock(logger->_lock); - logger->logs = getLogsForDomain(logger->domain); - } + updateLoggerWriters(); } AbstractLogWriter::AbstractLogWriter() diff --git a/icetray/icetray/logger.h b/icetray/icetray/logger.h index e78a126..75925b9 100644 --- a/icetray/icetray/logger.h +++ b/icetray/icetray/logger.h @@ -82,6 +82,7 @@ namespace IceTray { void removeWriter(LogWriterPrx writer); private: + void updateLoggerWriters() const; mutable boost::shared_mutex _lock; Loggers loggers; LogWriters logWriters; |