Kaydet (Commit) 08e301f8 authored tarafından Neal Norwitz's avatar Neal Norwitz

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.
üst 14361fff
......@@ -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()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment