You've already forked pico-launcher
mirror of
https://github.com/LNH-team/pico-launcher.git
synced 2026-01-09 16:28:48 -08:00
Initial commit
This commit is contained in:
26
common/logger/ThreadSafeLogger.h
Normal file
26
common/logger/ThreadSafeLogger.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
#include <memory>
|
||||
#include <libtwl/rtos/rtosMutex.h>
|
||||
#include "ILogger.h"
|
||||
|
||||
class ThreadSafeLogger : public ILogger
|
||||
{
|
||||
std::unique_ptr<ILogger> _logger;
|
||||
rtos_mutex_t _mutex;
|
||||
|
||||
public:
|
||||
explicit ThreadSafeLogger(std::unique_ptr<ILogger> logger)
|
||||
: _logger(std::move(logger))
|
||||
{
|
||||
rtos_createMutex(&_mutex);
|
||||
}
|
||||
|
||||
void LogV(LogLevel level, const char* fmt, va_list vlist) override
|
||||
{
|
||||
rtos_lockMutex(&_mutex);
|
||||
{
|
||||
_logger->LogV(level, fmt, vlist);
|
||||
}
|
||||
rtos_unlockMutex(&_mutex);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user