mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
workaround to prevent segfault with current gevent on osx. Disable
kqueue.
This commit is contained in:
parent
5c498b6a89
commit
8d089f95f9
@ -6,12 +6,17 @@
|
||||
from __future__ import with_statement
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# workaround on osx, disable kqueue
|
||||
if sys.platform == "darwin":
|
||||
os.environ['EVENT_NOKQUEUE'] = "1"
|
||||
|
||||
|
||||
import gevent
|
||||
from gevent.pool import Pool
|
||||
from gevent.server import StreamServer
|
||||
from gevent import pywsgi, wsgi
|
||||
from gevent import hub
|
||||
|
||||
import gunicorn
|
||||
from gunicorn.workers.async import AsyncWorker
|
||||
@ -53,6 +58,7 @@ class GeventWorker(AsyncWorker):
|
||||
monkey.noisy = False
|
||||
monkey.patch_all()
|
||||
|
||||
|
||||
def timeout_ctx(self):
|
||||
return gevent.Timeout(self.cfg.keepalive, False)
|
||||
|
||||
@ -80,6 +86,12 @@ class GeventWorker(AsyncWorker):
|
||||
pass
|
||||
|
||||
|
||||
def handle_request(self, *args):
|
||||
try:
|
||||
super(GeventWorker, self).handle_request(*args)
|
||||
except gevent.GreenletExit:
|
||||
pass
|
||||
|
||||
def init_process(self):
|
||||
#gevent doesn't reinitialize dns for us after forking
|
||||
#here's the workaround
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user