From cfc6dc778e2651f75c4ba35ebab9e9a72011960a Mon Sep 17 00:00:00 2001 From: benoitc Date: Sun, 19 Oct 2014 10:04:36 +0200 Subject: [PATCH] gthread: improve accepting connections loop make sure we stop accepting immediately when max connections is achieved. --- gunicorn/workers/gthread.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gunicorn/workers/gthread.py b/gunicorn/workers/gthread.py index d1fa1fbf..f36d92c4 100644 --- a/gunicorn/workers/gthread.py +++ b/gunicorn/workers/gthread.py @@ -102,6 +102,9 @@ class ThreadWorker(base.Worker): super(ThreadWorker, self).init_process() def accept(self, listener): + if not self.alive: + return + try: client, addr = listener.accept() conn = TConn(self.cfg, listener, client, addr) @@ -174,6 +177,7 @@ class ThreadWorker(base.Worker): if len(self.futures) >= self.worker_connections: res = futures.wait(self.futures, timeout=timeout) if not res: + self.alive = False self.log.info("max requests achieved") break