diff --git a/paste/script/util/logging_config.py b/paste/script/util/logging_config.py index 8b51eca..8cba1ec 100644 --- a/paste/script/util/logging_config.py +++ b/paste/script/util/logging_config.py @@ -91,16 +91,13 @@ def fileConfig(fname, defaults=None): formatters = _create_formatters(cp) # critical section - logging._acquireLock() - try: + with logging._lock: logging._handlers.clear() if hasattr(logging, '_handlerList'): del logging._handlerList[:] # Handlers add themselves to logging._handlers handlers = _install_handlers(cp, formatters) _install_loggers(cp, handlers) - finally: - logging._releaseLock() def _resolve(name): @@ -327,9 +324,8 @@ class ConfigSocketReceiver(ThreadingTCPServer): def __init__(self, host='localhost', port=DEFAULT_LOGGING_CONFIG_PORT, handler=None): ThreadingTCPServer.__init__(self, (host, port), handler) - logging._acquireLock() - self.abort = 0 - logging._releaseLock() + with logging._lock: + self.abort = 0 self.timeout = 1 def serve_until_stopped(self): @@ -341,16 +337,14 @@ def serve_until_stopped(self): self.timeout) if rd: self.handle_request() - logging._acquireLock() - abort = self.abort - logging._releaseLock() + with logging._lock: + abort = self.abort def serve(rcvr, hdlr, port): server = rcvr(port=port, handler=hdlr) global _listener - logging._acquireLock() - _listener = server - logging._releaseLock() + with logging._lock: + _listener = server server.serve_until_stopped() return threading.Thread(target=serve, @@ -363,7 +357,6 @@ def stopListening(): """ global _listener if _listener: - logging._acquireLock() - _listener.abort = 1 - _listener = None - logging._releaseLock() + with logging._lock: + _listener.abort = 1 + _listener = None diff --git a/tests/test_logging_config.py b/tests/test_logging_config.py index 1f82130..4a154af 100644 --- a/tests/test_logging_config.py +++ b/tests/test_logging_config.py @@ -120,14 +120,11 @@ def test4(): conf = globals()['config%d' % i] sys.stdout.write('config%d: ' % i) loggerDict = logging.getLogger().manager.loggerDict - logging._acquireLock() - try: + with logging._lock: saved_handlers = logging._handlers.copy() if hasattr(logging, '_handlerList'): saved_handler_list = logging._handlerList[:] saved_loggers = loggerDict.copy() - finally: - logging._releaseLock() try: fn = tempfile.mktemp(".ini") f = open(fn, "w") @@ -146,8 +143,7 @@ def test4(): message('ok.') os.remove(fn) finally: - logging._acquireLock() - try: + with logging._lock: logging._handlers.clear() logging._handlers.update(saved_handlers) if hasattr(logging, '_handlerList'): @@ -155,8 +151,6 @@ def test4(): loggerDict = logging.getLogger().manager.loggerDict loggerDict.clear() loggerDict.update(saved_loggers) - finally: - logging._releaseLock() #---------------------------------------------------------------------------- # Test 5 @@ -196,14 +190,11 @@ def formatException(self, ei): def test5(): loggerDict = logging.getLogger().manager.loggerDict - logging._acquireLock() - try: + with logging._lock: saved_handlers = logging._handlers.copy() if hasattr(logging, '_handlerList'): saved_handler_list = logging._handlerList[:] saved_loggers = loggerDict.copy() - finally: - logging._releaseLock() try: fn = tempfile.mktemp(".ini") f = open(fn, "w") @@ -218,8 +209,7 @@ def test5(): hdlr = logging.getLogger().handlers[0] logging.getLogger().handlers.remove(hdlr) finally: - logging._acquireLock() - try: + with logging._lock: logging._handlers.clear() logging._handlers.update(saved_handlers) if hasattr(logging, '_handlerList'): @@ -227,5 +217,3 @@ def test5(): loggerDict = logging.getLogger().manager.loggerDict loggerDict.clear() loggerDict.update(saved_loggers) - finally: - logging._releaseLock()