[Python-checkins] r78033 - in python/trunk/Lib: logging/config.py test/test_logging.py
benjamin.peterson
python-checkins at python.org
Sat Feb 6 23:08:15 CET 2010
Author: benjamin.peterson
Date: Sat Feb 6 23:08:15 2010
New Revision: 78033
Log:
make waiting for the server to start robust
Modified:
python/trunk/Lib/logging/config.py
python/trunk/Lib/test/test_logging.py
Modified: python/trunk/Lib/logging/config.py
==============================================================================
--- python/trunk/Lib/logging/config.py (original)
+++ python/trunk/Lib/logging/config.py Sat Feb 6 23:08:15 2010
@@ -843,17 +843,25 @@
abort = self.abort
logging._releaseLock()
- def serve(rcvr, hdlr, port):
- server = rcvr(port=port, handler=hdlr)
- global _listener
- logging._acquireLock()
- _listener = server
- logging._releaseLock()
- server.serve_until_stopped()
+ class Server(threading.Thread):
+
+ def __init__(self, rcvr, hdlr, port):
+ super(Server, self).__init__()
+ self.rcvr = rcvr
+ self.hdlr = hdlr
+ self.port = port
+ self.ready = threading.Event()
+
+ def run(self):
+ server = self.rcvr(port=self.port, handler=self.hdlr)
+ self.ready.set()
+ global _listener
+ logging._acquireLock()
+ _listener = server
+ logging._releaseLock()
+ server.serve_until_stopped()
- return threading.Thread(target=serve,
- args=(ConfigSocketReceiver,
- ConfigStreamHandler, port))
+ return Server(ConfigSocketReceiver, ConfigStreamHandler, port)
def stopListening():
"""
Modified: python/trunk/Lib/test/test_logging.py
==============================================================================
--- python/trunk/Lib/test/test_logging.py (original)
+++ python/trunk/Lib/test/test_logging.py Sat Feb 6 23:08:15 2010
@@ -1574,7 +1574,7 @@
port = find_unused_port()
t = logging.config.listen(port)
t.start()
- time.sleep(0.5) # give server thread some time to get ready
+ t.ready.wait()
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(2.0)
More information about the Python-checkins
mailing list