MCPcopy Index your code
hub / github.com/python/cpython / _kill_process

Method _kill_process

Lib/test/_test_multiprocessing.py:589–644  ·  view source on GitHub ↗
(self, meth, target=None)

Source from the content-addressed store, hash-verified

587
588 @warnings_helper.ignore_fork_in_thread_deprecation_warnings()
589 def _kill_process(self, meth, target=None):
590 if self.TYPE == 'threads':
591 self.skipTest('test not appropriate for {}'.format(self.TYPE))
592
593 event = self.Event()
594 if not target:
595 target = self._sleep_some_event
596 p = self.Process(target=target, args=(event,))
597 p.daemon = True
598 p.start()
599
600 self.assertEqual(p.is_alive(), True)
601 self.assertIn(p, self.active_children())
602 self.assertEqual(p.exitcode, None)
603
604 join = TimingWrapper(p.join)
605
606 self.assertEqual(join(0), None)
607 self.assertTimingAlmostEqual(join.elapsed, 0.0)
608 self.assertEqual(p.is_alive(), True)
609
610 self.assertEqual(join(-1), None)
611 self.assertTimingAlmostEqual(join.elapsed, 0.0)
612 self.assertEqual(p.is_alive(), True)
613
614 timeout = support.SHORT_TIMEOUT
615 if not event.wait(timeout):
616 p.terminate()
617 p.join()
618 self.fail(f"event not signaled in {timeout} seconds")
619
620 meth(p)
621
622 if hasattr(signal, 'alarm'):
623 # On the Gentoo buildbot waitpid() often seems to block forever.
624 # We use alarm() to interrupt it if it blocks for too long.
625 def handler(*args):
626 raise RuntimeError('join took too long: %s' % p)
627 old_handler = signal.signal(signal.SIGALRM, handler)
628 try:
629 signal.alarm(10)
630 self.assertEqual(join(), None)
631 finally:
632 signal.alarm(0)
633 signal.signal(signal.SIGALRM, old_handler)
634 else:
635 self.assertEqual(join(), None)
636
637 self.assertTimingAlmostEqual(join.elapsed, 0.0)
638
639 self.assertEqual(p.is_alive(), False)
640 self.assertNotIn(p, self.active_children())
641
642 p.join()
643
644 return p.exitcode
645
646 @warnings_helper.ignore_fork_in_thread_deprecation_warnings()

Callers 4

test_interruptMethod · 0.95
test_terminateMethod · 0.95
test_killMethod · 0.95

Calls 15

waitMethod · 0.95
terminateMethod · 0.95
TimingWrapperClass · 0.85
methFunction · 0.85
skipTestMethod · 0.80
EventMethod · 0.80
assertInMethod · 0.80
assertNotInMethod · 0.80
joinFunction · 0.50
formatMethod · 0.45
ProcessMethod · 0.45

Tested by

no test coverage detected