From fb8a4a709437a34b8ea13460b1ee5ea41dee589f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Sat, 23 Jul 2022 18:33:32 -0400
Subject: [PATCH] logger: add debugEnabled, use memory_order_relaxed

Change-Id: I77f0617371f59cba662289f53a08d6037c709cd2
---
 src/logger.cpp | 18 ++++++++++++------
 src/logger.h   |  1 +
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/logger.cpp b/src/logger.cpp
index 6b30a03058..70ccc75e37 100644
--- a/src/logger.cpp
+++ b/src/logger.cpp
@@ -270,11 +270,11 @@ public:
 
     virtual void consume(Msg& msg) = 0;
 
-    void enable(bool en) { enabled_.store(en); }
-    bool isEnable() { return enabled_.load(); }
+    void enable(bool en) { enabled_.store(en, std::memory_order_relaxed); }
+    bool isEnable() { return enabled_.load(std::memory_order_relaxed); }
 
 private:
-    std::atomic<bool> enabled_;
+    std::atomic_bool enabled_ {false};
 };
 
 class ConsoleLog : public Logger::Handler
@@ -580,18 +580,24 @@ log_to_if_enabled(T& handler, Logger::Msg& msg)
     }
 }
 
-static std::atomic_bool debugEnabled {false};
+static std::atomic_bool debugEnabled_ {false};
 
 void
 Logger::setDebugMode(bool enable)
 {
-    debugEnabled.store(enable);
+    debugEnabled_.store(enable, std::memory_order_relaxed);
+}
+
+bool
+Logger::debugEnabled()
+{
+    return debugEnabled_.load(std::memory_order_relaxed);
 }
 
 DRING_PUBLIC void
 Logger::vlog(int level, const char* file, int line, bool linefeed, const char* fmt, va_list ap)
 {
-    if (not debugEnabled.load() and level < LOG_WARNING) {
+    if (not debugEnabled_.load(std::memory_order_relaxed) and level < LOG_WARNING) {
         return;
     }
 
diff --git a/src/logger.h b/src/logger.h
index 535c2a7430..9fd7a1adc0 100644
--- a/src/logger.h
+++ b/src/logger.h
@@ -124,6 +124,7 @@ public:
     static void setFileLog(const std::string& path);
 
     static void setDebugMode(bool enable);
+    static bool debugEnabled();
 
     static void fini();
 
-- 
GitLab