diff --git a/gunicorn/workers/gthread.py b/gunicorn/workers/gthread.py index 0d2272f2..fb3830d4 100644 --- a/gunicorn/workers/gthread.py +++ b/gunicorn/workers/gthread.py @@ -208,7 +208,10 @@ class ThreadWorker(base.Worker): # can we accept more connections? if self.nr_conns < self.worker_connections: # wait for an event - events = self.poller.select(1.0) + select_timeout = self.timeout or 1.0 + if self._keep: + select_timeout = min(select_timeout, self.cfg.keepalive) + events = self.poller.select(select_timeout) for key, _ in events: callback = key.data callback(key.fileobj)