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 fda2106ac2
commit 32fb6a81f9
2 changed files with 13 additions and 7 deletions

View file

@ -1226,19 +1226,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.acquire()
try:
_acquireLock()
try:
if hdlr in self.handlers:
self.handlers.remove(hdlr)
finally:
hdlr.release()
finally:
_releaseLock()
def hasHandlers(self):
"""