Issue #9947: logging: Fixed locking bug in stopListening.
diff --git a/Lib/logging/config.py b/Lib/logging/config.py
index 356183f..258cc9c 100644
--- a/Lib/logging/config.py
+++ b/Lib/logging/config.py
@@ -895,8 +895,10 @@
Stop the listening server which was created with a call to listen().
"""
global _listener
- if _listener:
- logging._acquireLock()
- _listener.abort = 1
- _listener = None
+ logging._acquireLock()
+ try:
+ if _listener:
+ _listener.abort = 1
+ _listener = None
+ finally:
logging._releaseLock()
diff --git a/Misc/NEWS b/Misc/NEWS
index e6acb85..90a1761 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -43,6 +43,8 @@
Library
-------
+- Issue #9947: logging: Fixed locking bug in stopListening.
+
- Issue #9945: logging: Fixed locking bugs in addHandler/removeHandler.
- Issue #9936: Fixed executable lines' search in the trace module.