def recover(self): if self._inflight is not None: self._inflight.abort(errors.WorkerDied, errors.WorkerDied()) self._inflight = None greenhouse.end(self._collector) self._close_pipes() self.start()
def test_end_permits_dead_glets(self): @greenhouse.schedule @greenhouse.greenlet def g(): pass greenhouse.pause() # no assert, just make sure we don't raise greenhouse.end(g)
def test_end(self): l = [False] @greenhouse.schedule @greenhouse.greenlet def glet(): greenhouse.pause() l[0] = True greenhouse.pause() greenhouse.end(glet) greenhouse.pause() assert not l[0]
def main(environ, argv): finished = greenhouse.Event() backdoor = greenhouse.greenlet(run_backdoor, args=(finished,)) greenhouse.schedule(backdoor) # nothing in run_backdoor blocks until it succeeds in # getting a port, so this can just be a simple pause greenhouse.pause() telnet = subprocess.Popen(['telnet', '127.0.0.1', str(BACKDOOR_PORT)]) rc = telnet.wait() greenhouse.end(backdoor) finished.wait() return rc
def close(self): send_req(self.writepipe, CMD_CLOSE, None, None) greenhouse.end(self._collector)
def int_handler(signum, frame): greenhouse.end(speaker_glet)