summaryrefslogtreecommitdiff
path: root/src/components/utils/src/push_log.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/utils/src/push_log.cc')
-rw-r--r--src/components/utils/src/push_log.cc18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/components/utils/src/push_log.cc b/src/components/utils/src/push_log.cc
index 6e16c99181..dea0e75274 100644
--- a/src/components/utils/src/push_log.cc
+++ b/src/components/utils/src/push_log.cc
@@ -36,8 +36,12 @@
namespace logger {
-static bool logs_enabled_ = false;
-static LogMessageLoopThread* log_message_loop_thread = NULL;
+struct __attribute__((visibility("default"))) LogsEnabled {
+ static std::atomic_bool logs_enabled_;
+};
+
+std::atomic_bool LogsEnabled::logs_enabled_(false);
+static std::unique_ptr<LogMessageLoopThread> log_message_loop_thread;
bool push_log(log4cxx::LoggerPtr logger,
log4cxx::LevelPtr level,
@@ -73,22 +77,22 @@ bool push_log(log4cxx::LoggerPtr logger,
}
bool logs_enabled() {
- return logs_enabled_;
+ return LogsEnabled::logs_enabled_;
}
void set_logs_enabled(bool state) {
- logs_enabled_ = state;
+ LogsEnabled::logs_enabled_ = state;
}
void create_log_message_loop_thread() {
if (!log_message_loop_thread) {
- log_message_loop_thread = new LogMessageLoopThread();
+ log_message_loop_thread =
+ std::unique_ptr<LogMessageLoopThread>(new LogMessageLoopThread);
}
}
void delete_log_message_loop_thread() {
- delete log_message_loop_thread;
- log_message_loop_thread = NULL;
+ log_message_loop_thread.reset();
}
void flush_logger() {