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.