From: Victor Stinner Date: Mon, 16 Mar 2015 17:03:06 +0000 (+0100) Subject: Issue #23680: Reduce risk of race condition in check_interrupted_write() of X-Git-Tag: v3.5.0a3~166 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9c182a1e25409a241cf1f7e8d0141199dd4344c9;p=python 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. --- diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index abbd6611de..e5c6073ba3 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()