From 1a258711b00cef322cadedf35540d64ae18eb0b0 Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Sun, 28 Feb 2016 18:04:18 +0100 Subject: Guard log print to stderr with mutex --- src/Log.cpp | 5 ++++- src/Log.h | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Log.cpp b/src/Log.cpp index f8f7d7f..90548af 100644 --- a/src/Log.cpp +++ b/src/Log.cpp @@ -74,7 +74,10 @@ void Logger::logstr(log_level_t level, std::string message) (*it)->log(level, message); } - std::cerr << levels_as_str[level] << " " << message << std::endl; + { + std::lock_guard guard(m_cerr_mutex); + std::cerr << levels_as_str[level] << " " << message << std::endl; + } } diff --git a/src/Log.h b/src/Log.h index 7be6df8..81490b2 100644 --- a/src/Log.h +++ b/src/Log.h @@ -39,6 +39,7 @@ #include #include #include +#include #define SYSLOG_IDENT "ODR-DabMux" #define SYSLOG_FACILITY LOG_LOCAL0 @@ -146,6 +147,8 @@ class Logger { private: std::list backends; + + std::mutex m_cerr_mutex; }; extern Logger etiLog; -- cgit v1.2.3