summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libcamera/base/log.h9
-rw-r--r--src/libcamera/base/log.cpp5
2 files changed, 7 insertions, 7 deletions
diff --git a/include/libcamera/base/log.h b/include/libcamera/base/log.h
index 6d2c9301..4137d87a 100644
--- a/include/libcamera/base/log.h
+++ b/include/libcamera/base/log.h
@@ -7,6 +7,7 @@
#pragma once
+#include <atomic>
#include <sstream>
#include <libcamera/base/private.h>
@@ -31,8 +32,8 @@ public:
static LogCategory *create(const char *name);
const std::string &name() const { return name_; }
- LogSeverity severity() const { return severity_; }
- void setSeverity(LogSeverity severity);
+ LogSeverity severity() const { return severity_.load(std::memory_order_relaxed); }
+ void setSeverity(LogSeverity severity) { severity_.store(severity, std::memory_order_relaxed); }
static const LogCategory &defaultCategory();
@@ -40,7 +41,9 @@ private:
explicit LogCategory(const char *name);
const std::string name_;
- LogSeverity severity_;
+
+ std::atomic<LogSeverity> severity_;
+ static_assert(decltype(severity_)::is_always_lock_free);
};
#define LOG_DECLARE_CATEGORY(name) \
diff --git a/src/libcamera/base/log.cpp b/src/libcamera/base/log.cpp
index ea667189..06e955df 100644
--- a/src/libcamera/base/log.cpp
+++ b/src/libcamera/base/log.cpp
@@ -810,15 +810,12 @@ LogCategory::LogCategory(const char *name)
*/
/**
+ * \fn LogCategory::setSeverity(LogSeverity severity)
* \brief Set the severity of the log category
*
* Messages of severity higher than or equal to the severity of the log category
* are printed, other messages are discarded.
*/
-void LogCategory::setSeverity(LogSeverity severity)
-{
- severity_ = severity;
-}
/**
* \brief Retrieve the default log category