From: Brett Cannon Date: Wed, 30 Apr 2003 05:32:32 +0000 (+0000) Subject: Change from a threading.Condition object to a threading.Event object for X-Git-Tag: v2.3c1~921 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f9addb676d7ef864c6685a1ac8423b5b2663ec68;p=python Change from a threading.Condition object to a threading.Event object for signalling when the TCP server is done. Should hopefully solve hanging issues for Solaris 8 & 9. Solves the apparent hanging issue with OS X. Closes patch #729988 . --- diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index 93fb4a2706..60995620bb 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -88,7 +88,8 @@ class LogRecordStreamHandler(StreamRequestHandler): logger = logging.getLogger(logname) logger.handle(record) -socketDataProcessed = threading.Condition() +# The server sets socketDataProcessed when it's done. +socketDataProcessed = threading.Event() class LogRecordSocketReceiver(ThreadingTCPServer): """ @@ -115,9 +116,7 @@ class LogRecordSocketReceiver(ThreadingTCPServer): self.handle_request() abort = self.abort #notify the main thread that we're about to exit - socketDataProcessed.acquire() - socketDataProcessed.notify() - socketDataProcessed.release() + socketDataProcessed.set() def process_request(self, request, client_address): #import threading @@ -467,9 +466,7 @@ def test_main(): finally: #wait for TCP receiver to terminate - socketDataProcessed.acquire() socketDataProcessed.wait() - socketDataProcessed.release() for thread in threads: thread.join() banner("logrecv output", "begin")