mirror of https://github.com/python/cpython
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 .
This commit is contained in:
parent
13da5fa999
commit
f9addb676d
|
@ -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")
|
||||
|
|
Loading…
Reference in New Issue