Issue #9945: logging: Fixed locking bugs in addHandler/removeHandler.

This commit is contained in:
Vinay Sajip 2010-09-25 17:42:36 +00:00
parent 7db964d5aa
commit 546885ea4e
2 changed files with 13 additions and 8 deletions

View File

@ -1263,20 +1263,23 @@ class Logger(Filterer):
"""
Add the specified handler to this logger.
"""
if not (hdlr in self.handlers):
self.handlers.append(hdlr)
_acquireLock()
try:
if not (hdlr in self.handlers):
self.handlers.append(hdlr)
finally:
_releaseLock()
def removeHandler(self, hdlr):
"""
Remove the specified handler from this logger.
"""
if hdlr in self.handlers:
#hdlr.close()
hdlr.acquire()
try:
_acquireLock()
try:
if hdlr in self.handlers:
self.handlers.remove(hdlr)
finally:
hdlr.release()
finally:
_releaseLock()
def callHandlers(self, record):
"""

View File

@ -43,6 +43,8 @@ Core and Builtins
Library
-------
- Issue #9945: logging: Fixed locking bugs in addHandler/removeHandler.
- Issue #9936: Fixed executable lines' search in the trace module.
- Issue #9928: Properly initialize the types exported by the bz2 module.