mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
bpo-35601: Alleviate race condition when waiting for SIGALRM in test_asyncio (GH-11337)
There is a race condition regarding signal delivery in test_signal_handling_args for test_asyncio.test_events.KqueueEventLoopTests. The signal can be received at any moment outside the time window provided in the test. The fix is to wait for the signal to be received instead with a bigger timeout.
This commit is contained in:
parent
4bc246786f
commit
5471420faa
1 changed files with 3 additions and 1 deletions
|
@ -475,6 +475,7 @@ class EventLoopTestsMixin:
|
|||
self.loop.add_signal_handler(signal.SIGALRM, my_handler)
|
||||
|
||||
signal.setitimer(signal.ITIMER_REAL, 0.01, 0) # Send SIGALRM once.
|
||||
self.loop.call_later(60, self.loop.stop)
|
||||
self.loop.run_forever()
|
||||
self.assertEqual(caught, 1)
|
||||
|
||||
|
@ -487,11 +488,12 @@ class EventLoopTestsMixin:
|
|||
nonlocal caught
|
||||
caught += 1
|
||||
self.assertEqual(args, some_args)
|
||||
self.loop.stop()
|
||||
|
||||
self.loop.add_signal_handler(signal.SIGALRM, my_handler, *some_args)
|
||||
|
||||
signal.setitimer(signal.ITIMER_REAL, 0.1, 0) # Send SIGALRM once.
|
||||
self.loop.call_later(0.5, self.loop.stop)
|
||||
self.loop.call_later(60, self.loop.stop)
|
||||
self.loop.run_forever()
|
||||
self.assertEqual(caught, 1)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue