def run(self): acceptors = [] for sock in self.sockets: gsock = GreenSocket(sock) gsock.setblocking(1) hfun = partial(self.handle, gsock) acceptor = eventlet.spawn(_eventlet_serve, gsock, hfun, self.worker_connections) acceptors.append(acceptor) eventlet.sleep(0.0) while self.alive: self.notify() eventlet.sleep(1.0) self.notify() try: with eventlet.Timeout(self.cfg.graceful_timeout) as t: for a in acceptors: a.kill(eventlet.StopServe()) for a in acceptors: a.wait() except eventlet.Timeout as te: if te != t: raise for a in acceptors: a.kill()
def handle(self, listener, client, addr): if self.cfg.is_ssl: client = eventlet.wrap_ssl(client, server_side=True, **self.cfg.ssl_options) super(EventletWorker, self).handle(listener, client, addr) if not self.alive: raise eventlet.StopServe()
def stop(self): for node in list(self.nodes): self.sendDisconnect(node) with Timeout(.5, False): self.waitForNobodyConnected() if self.lsock is not None: self.lsock.close() self.lsock = None for node in list(self.nodes): self.closeConnection(node) if self.loop is not None: self.loop.kill(eventlet.StopServe())
def stopit(conn, addr): raise eventlet.StopServe()
def handle(sock, addr): sock.sendall(sock.recv(1024)) raise eventlet.StopServe()
def handle(sock, addr): sock.recv(1) sock.sendall(b"a") raise eventlet.StopServe()
def stop(self): eventlet.StopServe()
def doStop(self): raise eventlet.StopServe()