From 97cbee81fcda2a812cc655cc6b8cf1e2bead67b9 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Thu, 19 Mar 2015 03:05:26 -0400 Subject: Improve performance by avoiding heavy lock contention --- log.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'log.cpp') diff --git a/log.cpp b/log.cpp index 7687a190..4b271a0f 100644 --- a/log.cpp +++ b/log.cpp @@ -21,12 +21,20 @@ void LogListener::CloseLogCallback(void* ctxt) } +BNLogLevel LogListener::GetLogLevelCallback(void* ctxt) +{ + LogListener* listener = (LogListener*)ctxt; + return listener->GetLogLevel(); +} + + void LogListener::RegisterLogListener(LogListener* listener) { BNLogListener callbacks; callbacks.context = listener; callbacks.log = LogMessageCallback; callbacks.close = CloseLogCallback; + callbacks.getLogLevel = GetLogLevelCallback; BNRegisterLogListener(&callbacks); } @@ -41,6 +49,12 @@ void LogListener::UnregisterLogListener(LogListener* listener) } +void LogListener::UpdateLogListeners() +{ + BNUpdateLogListeners(); +} + + static void PerformLog(BNLogLevel level, const char* fmt, va_list args) { #if defined(_MSC_VER) -- cgit v1.3.1