def test_timeout_cancel(self): server = eventlet.listen(('0.0.0.0', 0)) bound_port = server.getsockname()[1] done = [False] def client_closer(sock): while True: (conn, addr) = sock.accept() conn.close() def go(): desc = eventlet.connect(('127.0.0.1', bound_port)) try: api.trampoline(desc, read=True, timeout=0.1) except api.TimeoutError: assert False, "Timed out" server.close() desc.close() done[0] = True greenthread.spawn_after_local(0, go) server_coro = api.spawn(client_closer, server) while not done[0]: api.sleep(0) api.kill(server_coro) check_hub()
def enter(self, entry, eta=None, priority=0): try: timer2.to_timestamp(eta) except OverflowError: if not self.handle_error(sys.exc_info()): raise now = time() if eta is None: eta = now secs = eta - now g = spawn_after_local(secs, entry) self._queue.add(g) g.link(self._entry_exit, entry) g.entry = entry g.eta = eta g.priority = priority g.cancelled = False return g
def _spawn(self): self.g = greenthread.spawn_after_local(self.interval, self) self.g.link(self._exit)
def func(): greenthread.spawn_after_local(0.1, self.lst.pop)
def sync(self, delay_seconds=10): self._gt = greenthread.spawn_after_local(delay_seconds, self.do_sync)