From 9c182a1e25409a241cf1f7e8d0141199dd4344c9 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 16 Mar 2015 18:03:06 +0100 Subject: [PATCH] Issue #23680: Reduce risk of race condition in check_interrupted_write() of test_io. Allocate the large data before scheduling an alarm in 1 second. On very slow computer, the alarm rings sometimes during the memory allocation. --- Lib/test/test_io.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index abbd6611de1..e5c6073ba32 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -3431,6 +3431,7 @@ class SignalsTest(unittest.TestCase): t.daemon = True r, w = os.pipe() fdopen_kwargs["closefd"] = False + large_data = item * (support.PIPE_MAX_SIZE // len(item) + 1) try: wio = self.io.open(w, **fdopen_kwargs) t.start() @@ -3442,8 +3443,7 @@ class SignalsTest(unittest.TestCase): # handlers, which in this case will invoke alarm_interrupt(). signal.alarm(1) try: - self.assertRaises(ZeroDivisionError, - wio.write, item * (support.PIPE_MAX_SIZE // len(item) + 1)) + self.assertRaises(ZeroDivisionError, wio.write, large_data) finally: signal.alarm(0) t.join()