mirror of
https://github.com/LNH-team/pico-launcher.git
synced 2025-12-05 13:16:06 +01:00
26 lines
569 B
C++
26 lines
569 B
C++
#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);
|
|
}
|
|
}; |