From f7b52b95e5202ebcf7f72766bcd8a0f746b51f16 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Fri, 21 Jun 2024 15:32:09 +0100 Subject: [PATCH] WIP --- synapse/logging/context.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/synapse/logging/context.py b/synapse/logging/context.py index ec3814f3ae..4b8d6037af 100644 --- a/synapse/logging/context.py +++ b/synapse/logging/context.py @@ -665,14 +665,13 @@ class PreserveLoggingContext: ) -_CURRENT_CONTEXT_VAR: ContextVar[LoggingContextOrSentinel] = ContextVar( - "current_context", default=SENTINEL_CONTEXT -) +_thread_local = threading.local() +_thread_local.current_context = SENTINEL_CONTEXT def current_context() -> LoggingContextOrSentinel: """Get the current logging context from thread local storage""" - return _CURRENT_CONTEXT_VAR.get() + return getattr(_thread_local, "current_context", SENTINEL_CONTEXT) def set_current_context(context: LoggingContextOrSentinel) -> LoggingContextOrSentinel: @@ -693,7 +692,7 @@ def set_current_context(context: LoggingContextOrSentinel) -> LoggingContextOrSe if current is not context: rusage = get_thread_resource_usage() current.stop(rusage) - _CURRENT_CONTEXT_VAR.set(context) + _thread_local.current_context = context context.start(rusage) return current