From 08e301f8bda33203a89b2a450eb8104d815ff534 Mon Sep 17 00:00:00 2001 From: Neal Norwitz Date: Wed, 25 Jan 2006 08:39:35 +0000 Subject: [PATCH] There was a race condition where the connector would try to connect before the listener was ready (on gentoo x86 buildslave). This caused the listener to not exit normally since nobody connected to it (waited in accept()). The exception was raised in the other thread and the test failed. This fix doesn't completely eliminate the race, but should make it near impossible to trigger. Hopefully it's good enough. --- Lib/test/test_socket_ssl.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Lib/test/test_socket_ssl.py b/Lib/test/test_socket_ssl.py index 5db5ab178e..98680b9236 100644 --- a/Lib/test/test_socket_ssl.py +++ b/Lib/test/test_socket_ssl.py @@ -35,6 +35,7 @@ def test_rude_shutdown(): # Some random port to connect to. PORT = 9934 + listener_ready = threading.Event() listener_gone = threading.Event() # `listener` runs in a thread. It opens a socket listening on PORT, and @@ -45,11 +46,13 @@ def test_rude_shutdown(): s = socket.socket() s.bind(('', PORT)) s.listen(5) + listener_ready.set() s.accept() s = None # reclaim the socket object, which also closes it listener_gone.set() def connector(): + listener_ready.wait() s = socket.socket() s.connect(('localhost', PORT)) listener_gone.wait() -- 2.40.0