diff --git a/gunicorn/workers/gthread.py b/gunicorn/workers/gthread.py index 7a23228cd..012cff846 100644 --- a/gunicorn/workers/gthread.py +++ b/gunicorn/workers/gthread.py @@ -46,6 +46,8 @@ def __init__(self, cfg, sock, client, server): self.sock.setblocking(False) def init(self): + if self.initialized: + return self.initialized = True self.sock.setblocking(True) @@ -111,7 +113,6 @@ def _wrap_future(self, fs, conn): fs.add_done_callback(self.finish_request) def enqueue_req(self, conn): - conn.init() # submit the connection to a worker fs = self.tpool.submit(self.handle, conn) self._wrap_future(fs, conn) @@ -273,6 +274,7 @@ def handle(self, conn): keepalive = False req = None try: + conn.init() req = next(conn.parser) if not req: return (False, conn)