Kaydet (Commit) 1eb77a50 authored tarafından Vinay Sajip's avatar Vinay Sajip

Added lock acquisition/release around shared data structure manipulation

üst bd3490ab
...@@ -466,9 +466,13 @@ def test4(): ...@@ -466,9 +466,13 @@ def test4():
conf = globals()['config%d' % i] conf = globals()['config%d' % i]
sys.stdout.write('config%d: ' % i) sys.stdout.write('config%d: ' % i)
loggerDict = logging.getLogger().manager.loggerDict loggerDict = logging.getLogger().manager.loggerDict
saved_handlers = logging._handlers.copy() logging._acquireLock()
saved_handler_list = logging._handlerList[:] try:
saved_loggers = loggerDict.copy() saved_handlers = logging._handlers.copy()
saved_handler_list = logging._handlerList[:]
saved_loggers = loggerDict.copy()
finally:
logging._releaseLock()
try: try:
fn = tempfile.mktemp(".ini") fn = tempfile.mktemp(".ini")
f = open(fn, "w") f = open(fn, "w")
...@@ -483,12 +487,16 @@ def test4(): ...@@ -483,12 +487,16 @@ def test4():
message('ok.') message('ok.')
os.remove(fn) os.remove(fn)
finally: finally:
logging._handlers.clear() logging._acquireLock()
logging._handlers.update(saved_handlers) try:
logging._handlerList = saved_handler_list logging._handlers.clear()
loggerDict = logging.getLogger().manager.loggerDict logging._handlers.update(saved_handlers)
loggerDict.clear() logging._handlerList = saved_handler_list
loggerDict.update(saved_loggers) loggerDict = logging.getLogger().manager.loggerDict
loggerDict.clear()
loggerDict.update(saved_loggers)
finally:
logging._releaseLock()
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# Test 5 # Test 5
...@@ -527,9 +535,13 @@ class FriendlyFormatter (logging.Formatter): ...@@ -527,9 +535,13 @@ class FriendlyFormatter (logging.Formatter):
def test5(): def test5():
loggerDict = logging.getLogger().manager.loggerDict loggerDict = logging.getLogger().manager.loggerDict
saved_handlers = logging._handlers.copy() logging._acquireLock()
saved_handler_list = logging._handlerList[:] try:
saved_loggers = loggerDict.copy() saved_handlers = logging._handlers.copy()
saved_handler_list = logging._handlerList[:]
saved_loggers = loggerDict.copy()
finally:
logging._releaseLock()
try: try:
fn = tempfile.mktemp(".ini") fn = tempfile.mktemp(".ini")
f = open(fn, "w") f = open(fn, "w")
...@@ -542,13 +554,16 @@ def test5(): ...@@ -542,13 +554,16 @@ def test5():
logging.exception("just testing") logging.exception("just testing")
os.remove(fn) os.remove(fn)
finally: finally:
logging._handlers.clear() logging._acquireLock()
logging._handlers.update(saved_handlers) try:
logging._handlerList = saved_handler_list logging._handlers.clear()
loggerDict = logging.getLogger().manager.loggerDict logging._handlers.update(saved_handlers)
loggerDict.clear() logging._handlerList = saved_handler_list
loggerDict.update(saved_loggers) loggerDict = logging.getLogger().manager.loggerDict
loggerDict.clear()
loggerDict.update(saved_loggers)
finally:
logging._releaseLock()
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment