aboutsummaryrefslogtreecommitdiff
path: root/include/cru/base/log/Logger.h
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-09-07 21:46:34 +0800
committerYuqian Yang <crupest@crupest.life>2025-09-07 21:46:34 +0800
commit8465655ceac8e1f78e4af2224ed8b8839ec4a35e (patch)
tree265499f3c4a46c06a48082e06210e6dbf416972e /include/cru/base/log/Logger.h
parentd36ed6c52f679ad0f9a0e89a4e1d09b763f063b8 (diff)
downloadcru-8465655ceac8e1f78e4af2224ed8b8839ec4a35e.tar.gz
cru-8465655ceac8e1f78e4af2224ed8b8839ec4a35e.tar.bz2
cru-8465655ceac8e1f78e4af2224ed8b8839ec4a35e.zip
Fix logger stop.
Diffstat (limited to 'include/cru/base/log/Logger.h')
-rw-r--r--include/cru/base/log/Logger.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/include/cru/base/log/Logger.h b/include/cru/base/log/Logger.h
index 3ed119e2..1ef53654 100644
--- a/include/cru/base/log/Logger.h
+++ b/include/cru/base/log/Logger.h
@@ -1,9 +1,9 @@
#pragma once
#include "../Base.h"
-#include "../concurrent/ConcurrentQueue.h"
-
+#include <condition_variable>
#include <format> // IWYU pragma: keep
+#include <list>
#include <memory>
#include <mutex>
#include <thread>
@@ -55,12 +55,17 @@ class CRU_BASE_API Logger : public Object2 {
}
private:
- concurrent::ConcurrentQueue<LogInfo> log_queue_;
+ void LogThreadRun();
+
+ private:
+ std::mutex log_queue_mutex_;
+ std::condition_variable log_queue_condition_variable_;
+ std::list<LogInfo> log_queue_;
+ bool log_stop_;
+ std::thread log_thread_;
std::mutex target_list_mutex_;
std::vector<std::unique_ptr<ILogTarget>> target_list_;
-
- std::thread log_thread_;
};
class CRU_BASE_API LoggerCppStream : public Object2 {