def _sleep_some(cls):
time.sleep(100)
+ @classmethod
+ def _sleep_some_event(cls, event):
+ event.set()
+ time.sleep(100)
+
@classmethod
def _test_sleep(cls, delay):
time.sleep(delay)
if self.TYPE == 'threads':
self.skipTest('test not appropriate for {}'.format(self.TYPE))
- p = self.Process(target=self._sleep_some)
+ event = self.Event()
+ p = self.Process(target=self._sleep_some_event, args=(event,))
p.daemon = True
p.start()
self.assertTimingAlmostEqual(join.elapsed, 0.0)
self.assertEqual(p.is_alive(), True)
- # XXX maybe terminating too soon causes the problems on Gentoo...
- time.sleep(1)
+ timeout = support.SHORT_TIMEOUT
+ if not event.wait(timeout):
+ p.terminate()
+ p.join()
+ self.fail(f"event not signaled in {timeout} seconds")
meth(p)