From 5c81fc76d26a001f2b06945e17cbc1981d5bc0c1 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Mon, 8 Feb 2016 05:26:13 -0800 Subject: [PATCH] Core: Create mThreadLogger --- src/core/log.h | 4 +++- src/core/thread.c | 9 +++++---- src/core/thread.h | 8 +++++++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/core/log.h b/src/core/log.h index ce1a953c6..b790f6cdd 100644 --- a/src/core/log.h +++ b/src/core/log.h @@ -15,7 +15,9 @@ enum mLogLevel { mLOG_INFO = 0x08, mLOG_DEBUG = 0x10, mLOG_STUB = 0x20, - mLOG_GAME_ERROR = 0x40 + mLOG_GAME_ERROR = 0x40, + + mLOG_ALL = 0x7F }; struct mLogger { diff --git a/src/core/thread.c b/src/core/thread.c index 3f6e0c126..21de2f7af 100644 --- a/src/core/thread.c +++ b/src/core/thread.c @@ -142,6 +142,7 @@ static THREAD_ENTRY _mCoreThreadRun(void* context) { bool mCoreThreadStart(struct mCoreThread* threadContext) { threadContext->state = THREAD_INITIALIZED; + threadContext->logger.p = threadContext; MutexInit(&threadContext->stateMutex); ConditionInit(&threadContext->stateCond); @@ -380,19 +381,19 @@ struct mCoreThread* mCoreThreadGet(void) { #endif static void _mCoreLog(struct mLogger* logger, int category, enum mLogLevel level, const char* format, va_list args) { + UNUSED(logger); printf("%s: ", mLogCategoryName(category)); vprintf(format, args); printf("\n"); - } struct mLogger* mCoreThreadLogger(void) { struct mCoreThread* thread = mCoreThreadGet(); if (thread) { - if (!thread->logger.log) { - thread->logger.log = _mCoreLog; + if (!thread->logger.d.log) { + thread->logger.d.log = _mCoreLog; } - return &thread->logger; + return &thread->logger.d; } return NULL; } diff --git a/src/core/thread.h b/src/core/thread.h index f6415c0d7..ec0ed7c6d 100644 --- a/src/core/thread.h +++ b/src/core/thread.h @@ -31,6 +31,12 @@ enum mCoreThreadState { THREAD_CRASHED }; +struct mCoreThread; +struct mThreadLogger { + struct mLogger d; + struct mCoreThread* p; +}; + struct mCoreThread { // Input struct mCore* core; @@ -45,7 +51,7 @@ struct mCoreThread { int interruptDepth; bool frameWasOn; - struct mLogger logger; + struct mThreadLogger logger; enum mLogLevel logLevel; ThreadCallback startCallback; ThreadCallback cleanCallback;