From 9fdd11b3b6e76d76eb6c22e3d60f4c17ae91a725 Mon Sep 17 00:00:00 2001 From: Vinay Sajip Date: Sat, 25 Sep 2010 17:48:25 +0000 Subject: [PATCH] Issue #9947: logging: Fixed locking bug in stopListening. --- Lib/logging/config.py | 10 ++++++---- Misc/NEWS | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Lib/logging/config.py b/Lib/logging/config.py index cc75e94140f..60744a0b476 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 c84a8ef3c46..b3af982e782 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.