From 5ea58c1af2e3d1a06c1a19bcf8cff64c5d71ab06 Mon Sep 17 00:00:00 2001 From: benoitc Date: Thu, 10 Jun 2010 21:44:43 +0200 Subject: [PATCH] pool! --- gunicorn/workers/ggevent2.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gunicorn/workers/ggevent2.py b/gunicorn/workers/ggevent2.py index 48e5f290..2491e675 100644 --- a/gunicorn/workers/ggevent2.py +++ b/gunicorn/workers/ggevent2.py @@ -29,6 +29,10 @@ class GEvent2Worker(Worker): 'wsgi.run_once': False } + def __init__(self, *args, **kwargs): + super(GEvent2Worker, self).__init__(*args, **kwargs) + self.worker_connections = self.cfg.worker_connections + self.pool = None @classmethod def setup(cls): @@ -36,8 +40,7 @@ class GEvent2Worker(Worker): monkey.patch_all() def handle_request(self, req): - gevent.getcurrent() - gevent.spawn(self.handle, req) + self.pool.spawn(self.handle, req) def handle(self, req): handle = wsgi.WSGIHandler(req) @@ -55,6 +58,8 @@ class GEvent2Worker(Worker): http = core.http() http.set_gencb(self.handle_request) + self.pool = Pool(self.worker_connections) + self.application = self.wsgi acceptor = gevent.spawn(http.accept, self.socket.fileno()) @@ -67,7 +72,7 @@ class GEvent2Worker(Worker): gevent.kill(acceptor) break gevent.sleep(0.1) - + pool.join(timeout=self.timeout) except KeyboardInterrupt: pass