--- nono/lib/logger.cpp 2026/04/29 17:04:51 1.1.1.4 +++ nono/lib/logger.cpp 2026/04/29 17:05:08 1.1.1.5 @@ -4,11 +4,11 @@ // Licensed under nono-license.txt // -#include "logger.h" -#include "mpu.h" +// +// ログ +// -// グローバルインスタンス -Logger gLogger; +#include "logger.h" // コンストラクタ Logger::Logger() @@ -24,7 +24,7 @@ Logger::~Logger() void Logger::Write(const char *str) { - std::unique_lock lk(mtx); + std::lock_guard lk(mtx); // パイプへ出力 (EOL まで出力する) for (const char *s = str; ; s++) { if (pipe.IsFull()) { @@ -51,7 +51,7 @@ Logger::Read(char *buf, int bufsize) uint8 ch; int i; - std::unique_lock lk(mtx); + std::lock_guard lk(mtx); for (i = 0; i < bufsize - 1 && pipe.Dequeue(&ch); ) { buf[i++] = ch; if (ch == '\0') { @@ -68,21 +68,3 @@ Logger::Read(char *buf, int bufsize) } return (i != 0); } - - -// パニック -void -panic(const char *funcname, const char *fmt, ...) -{ - char fmtbuf[1024]; - va_list ap; - - va_start(ap, fmt); - vsnprintf(fmtbuf, sizeof(fmtbuf), fmt, ap); - va_end(ap); - - // panic の場合ここでプロセス終了するのでログではなく stderr に出力 - fprintf(stderr, "panic! PC=$%08x %s at %s\n", - gMPU->GetPPC(), fmtbuf, funcname); - abort(); -}