diff options
Diffstat (limited to 'include/cru/base/log')
-rw-r--r-- | include/cru/base/log/Logger.h | 15 |
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 { |