summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVinay Sajip <vinay_sajip@yahoo.co.uk>2010-09-25 17:48:25 (GMT)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2010-09-25 17:48:25 (GMT)
commit9fdd11b3b6e76d76eb6c22e3d60f4c17ae91a725 (patch)
tree056e526bc326416eed71c01ec5d5e2d2a5a0fc39
parent32fb6a81f992d86bb4c227912602c224dbbc7d7f (diff)
downloadcpython-9fdd11b3b6e76d76eb6c22e3d60f4c17ae91a725.zip
cpython-9fdd11b3b6e76d76eb6c22e3d60f4c17ae91a725.tar.gz
cpython-9fdd11b3b6e76d76eb6c22e3d60f4c17ae91a725.tar.bz2
Issue #9947: logging: Fixed locking bug in stopListening.
-rw-r--r--Lib/logging/config.py10
-rw-r--r--Misc/NEWS2
2 files changed, 8 insertions, 4 deletions
diff --git a/Lib/logging/config.py b/Lib/logging/config.py
index cc75e94..60744a0 100644
--- a/Lib/logging/config.py
+++ b/Lib/logging/config.py
@@ -917,8 +917,10 @@ def stopListening():
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 c84a8ef..b3af982 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -68,6 +68,8 @@ Core and Builtins
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.