This is an automated email from the ASF dual-hosted git repository.

jscheffl pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 036d07e26be Remove global from listeners (#58597)
036d07e26be is described below

commit 036d07e26be3267badd09c936b633a3319db27a5
Author: Jens Scheffler <[email protected]>
AuthorDate: Sun Nov 23 23:01:52 2025 +0100

    Remove global from listeners (#58597)
---
 airflow-core/src/airflow/listeners/listener.py | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/airflow-core/src/airflow/listeners/listener.py 
b/airflow-core/src/airflow/listeners/listener.py
index 11918527ef2..08869f50947 100644
--- a/airflow-core/src/airflow/listeners/listener.py
+++ b/airflow-core/src/airflow/listeners/listener.py
@@ -18,6 +18,7 @@
 from __future__ import annotations
 
 import logging
+from functools import cache
 from typing import TYPE_CHECKING
 
 import pluggy
@@ -30,9 +31,6 @@ if TYPE_CHECKING:
 log = logging.getLogger(__name__)
 
 
-_listener_manager: ListenerManager | None = None
-
-
 def _before_hookcall(hook_name, hook_impls, kwargs):
     log.debug("Calling %r with %r", hook_name, kwargs)
     log.debug("Hook impls: %s", hook_impls)
@@ -82,10 +80,9 @@ class ListenerManager:
             self.pm.unregister(plugin)
 
 
+@cache
 def get_listener_manager() -> ListenerManager:
     """Get singleton listener manager."""
-    global _listener_manager
-    if not _listener_manager:
-        _listener_manager = ListenerManager()
-        integrate_listener_plugins(_listener_manager)
+    _listener_manager = ListenerManager()
+    integrate_listener_plugins(_listener_manager)
     return _listener_manager

Reply via email to