Fix eventlet patching and bump required version

Fix eventlet patching by performing the patching before the
`init_process` method, which does not return, is called.

This fix depends on bumping the required version to 0.24.1, which
contains a fix for the monotonic clock. See the relevant commit:
eventlet/eventlet@82f1877

This commit reverts 120f503f68929ef98d721a406745a1dbbb9d83fe

Fix #1847
Fix #1884
This commit is contained in:
Randall Leeds 2019-05-08 19:23:13 -07:00
parent ad941bdff4
commit a542a07773
2 changed files with 5 additions and 5 deletions

View File

@ -630,7 +630,7 @@ class WorkerClass(Setting):
A string referring to one of the following bundled classes:
* ``sync``
* ``eventlet`` - Requires eventlet >= 0.24 (or install it via
* ``eventlet`` - Requires eventlet >= 0.24.1 (or install it via
``pip install gunicorn[eventlet]``)
* ``gevent`` - Requires gevent >= 1.4 (or install it via
``pip install gunicorn[gevent]``)

View File

@ -11,11 +11,11 @@ import sys
try:
import eventlet
except ImportError:
raise RuntimeError("eventlet worker requires eventlet 0.24 or higher")
raise RuntimeError("eventlet worker requires eventlet 0.24.1 or higher")
else:
from pkg_resources import parse_version
if parse_version(eventlet.__version__) < parse_version('0.24'):
raise RuntimeError("eventlet worker requires eventlet 0.24 or higher")
if parse_version(eventlet.__version__) < parse_version('0.24.1'):
raise RuntimeError("eventlet worker requires eventlet 0.24.1 or higher")
from eventlet import hubs, greenthread
from eventlet.greenio import GreenSocket
@ -95,8 +95,8 @@ class EventletWorker(AsyncWorker):
return super().is_already_handled(respiter)
def init_process(self):
super().init_process()
self.patch()
super().init_process()
def handle_quit(self, sig, frame):
eventlet.spawn(super().handle_quit, sig, frame)