Skip to content

Commit 4f35079

Browse files
committed
Make test_terminate() succeed or fail quickly.
This does not fix #19227, but should stop the Gentoo buildbot from hanging.
1 parent 6480168 commit 4f35079

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

Lib/test/test_multiprocessing.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ def test_process(self):
270270

271271
@classmethod
272272
def _test_terminate(cls):
273-
time.sleep(1000)
273+
time.sleep(100)
274274

275275
def test_terminate(self):
276276
if self.TYPE == 'threads':
@@ -296,7 +296,19 @@ def test_terminate(self):
296296

297297
p.terminate()
298298

299-
self.assertEqual(join(), None)
299+
if hasattr(signal, 'alarm'):
300+
def handler(*args):
301+
raise RuntimeError('join took too long: pid=%s' % p.pid)
302+
old_handler = signal.signal(signal.SIGALRM, handler)
303+
try:
304+
signal.alarm(10)
305+
self.assertEqual(join(), None)
306+
signal.alarm(0)
307+
finally:
308+
signal.signal(signal.SIGALRM, old_handler)
309+
else:
310+
self.assertEqual(join(), None)
311+
300312
self.assertTimingAlmostEqual(join.elapsed, 0.0)
301313

302314
self.assertEqual(p.is_alive(), False)

0 commit comments

Comments
 (0)