From fb96a9ae69fde318739f364eb1369ba34c7ab45e Mon Sep 17 00:00:00 2001 From: Jason Madden Date: Thu, 15 Oct 2015 18:05:59 -0500 Subject: [PATCH] Make the gevent workers handle the quit signal by deferring to a new greenlet. Fixes #1126. --- THANKS | 1 + gunicorn/workers/ggevent.py | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/THANKS b/THANKS index 6fb97720..9a69da18 100644 --- a/THANKS +++ b/THANKS @@ -159,3 +159,4 @@ Marc Abramowitz Hebert J Kevin Littlejohn Wolfgang Schnerring +Jason Madden diff --git a/gunicorn/workers/ggevent.py b/gunicorn/workers/ggevent.py index 31bac446..8cde2746 100644 --- a/gunicorn/workers/ggevent.py +++ b/gunicorn/workers/ggevent.py @@ -166,6 +166,11 @@ class GeventWorker(AsyncWorker): except SystemExit: pass + def handle_quit(self, sig, frame): + # Move this out of the signal handler so we can use + # blocking calls. See #1126 + gevent.spawn(super(GeventWorker, self).handle_quit, sig, frame) + if gevent.version_info[0] == 0: def init_process(self):