diff --git a/gunicorn/workers/geventlet.py b/gunicorn/workers/geventlet.py index dcb2f3d64d..859c1eaf78 100644 --- a/gunicorn/workers/geventlet.py +++ b/gunicorn/workers/geventlet.py @@ -94,6 +94,9 @@ def init_process(self): self.patch() super(EventletWorker, self).init_process() + def handle_quit(self, sig, frame): + eventlet.spawn(super(EventletWorker, self).handle_quit, sig, frame) + def timeout_ctx(self): return eventlet.Timeout(self.cfg.keepalive or None, False) @@ -118,11 +121,7 @@ def run(self): while self.alive: self.notify() - try: - eventlet.sleep(1.0) - except AssertionError: - self.alive = False - break + eventlet.sleep(1.0) self.notify() try: