summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--icetray/icetray/logger.cpp19
-rw-r--r--icetray/icetray/logger.h1
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;