def test_alive_thread(self): death = tu.Event() t = tu.daemon_thread(_spinner, death) self.assertFalse(tu.is_alive(t)) t.start() self.assertTrue(tu.is_alive(t)) death.set() t.join() self.assertFalse(tu.is_alive(t))
def stop(self): self._dispatcher.interrupt() super(ParallelProcessTaskExecutor, self).stop() if threading_utils.is_alive(self._worker): self._worker.join() self._worker = None self._queue = None self._dispatcher.reset() self._manager.shutdown() self._manager.join()
def start(self): if threading_utils.is_alive(self._worker): raise RuntimeError("Worker thread must be stopped via stop()" " before starting/restarting") super(ParallelProcessTaskExecutor, self).start() self._dispatcher.setup() self._worker = threading_utils.daemon_thread( asyncore.loop, map=self._dispatcher.map, timeout=self._wait_timeout) self._worker.start()
def start(self): if threading_utils.is_alive(self._worker): raise RuntimeError("Worker thread must be stopped via stop()" " before starting/restarting") super(ParallelProcessTaskExecutor, self).start() # These don't seem restartable; make a new one... if self._manager.is_shutdown(): self._manager = _ViewableSyncManager() if not self._manager.is_running(): self._manager.start() self._dispatcher.reset() self._queue = self._manager.Queue() self._worker = threading_utils.daemon_thread(self._dispatcher.run, self._queue) self._worker.start()
def stop(self): super(ParallelProcessTaskExecutor, self).stop() self._dispatcher.close() if threading_utils.is_alive(self._worker): self._worker.join() self._worker = None
def test_alive_thread_falsey(self): for v in [False, 0, None, ""]: self.assertFalse(tu.is_alive(v))