[Python-checkins] bpo-34130: Fix test_signal.test_socket() (GH-8326)

Victor Stinner webhook-mailer at python.org
Wed Jul 18 11:44:08 EDT 2018


https://github.com/python/cpython/commit/99bb6df66a42625367c4f38e6802c8bb527baf4a
commit: 99bb6df66a42625367c4f38e6802c8bb527baf4a
branch: master
author: Victor Stinner <vstinner at redhat.com>
committer: GitHub <noreply at github.com>
date: 2018-07-18T17:43:57+02:00
summary:

bpo-34130: Fix test_signal.test_socket() (GH-8326)

test_signal.test_socket(): On Windows, sometimes even if the C signal handler
succeed to write the signal number into the write end of the socketpair, the
test fails with a BlockingIOError on the non-blocking read.recv(1) because the
read end of the socketpair didn't receive the byte yet.

Fix the race condition on Windows by setting the read end as blocking.

files:
M Lib/test/test_signal.py

diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py
index 354c3fde168c..e69db79909cc 100644
--- a/Lib/test/test_signal.py
+++ b/Lib/test/test_signal.py
@@ -392,7 +392,6 @@ def handler(signum, frame):
         signal.signal(signum, handler)
 
         read, write = socket.socketpair()
-        read.setblocking(False)
         write.setblocking(False)
         signal.set_wakeup_fd(write.fileno())
 



More information about the Python-checkins mailing list