Skip to content

Commit

Permalink
Merge pull request #2581 from temoto/patch-1
Browse files Browse the repository at this point in the history
eventlet worker: ALREADY_HANDLED -> WSGI_LOCAL
  • Loading branch information
benoitc committed Jul 2, 2021
2 parents cf55d2c + 6a8ebb4 commit 1299ea9
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion gunicorn/workers/geventlet.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,16 @@

from eventlet import hubs, greenthread
from eventlet.greenio import GreenSocket
from eventlet.wsgi import ALREADY_HANDLED as EVENTLET_ALREADY_HANDLED
import eventlet.wsgi
import greenlet

from gunicorn.workers.base_async import AsyncWorker

# ALREADY_HANDLED is removed in 0.30.3+ now it's `WSGI_LOCAL.already_handled: bool`
# https://github.com/eventlet/eventlet/pull/544
EVENTLET_WSGI_LOCAL = getattr(eventlet.wsgi, "WSGI_LOCAL", None)
EVENTLET_ALREADY_HANDLED = getattr(eventlet.wsgi, "ALREADY_HANDLED", None)


def _eventlet_socket_sendfile(self, file, offset=0, count=None):
# Based on the implementation in gevent which in turn is slightly
Expand Down Expand Up @@ -125,6 +130,10 @@ def patch(self):
patch_sendfile()

def is_already_handled(self, respiter):
# eventlet >= 0.30.3
if getattr(EVENTLET_WSGI_LOCAL, "already_handled", None):
raise StopIteration()
# eventlet < 0.30.3
if respiter == EVENTLET_ALREADY_HANDLED:
raise StopIteration()
return super().is_already_handled(respiter)
Expand Down

0 comments on commit 1299ea9

Please sign in to comment.