From 275031f66a4efbaf29fbb2d898906d279034da53 Mon Sep 17 00:00:00 2001 From: benoitc Date: Thu, 11 Mar 2010 13:27:03 +0100 Subject: [PATCH] ease integration with grainbows, put accept connection in its own method. --- gunicorn/worker.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/gunicorn/worker.py b/gunicorn/worker.py index f19609e4..ccfc7e8b 100644 --- a/gunicorn/worker.py +++ b/gunicorn/worker.py @@ -95,6 +95,15 @@ class Worker(object): self.init_signals() + def accept(self): + try: + client, addr = self.socket.accept() + self.handle(client, addr) + self.nr += 1 + except socket.error, e: + if e[0] not in (errno.EAGAIN, errno.ECONNABORTED): + raise + def run(self): self.init_process() self.nr = 0 @@ -106,13 +115,9 @@ class Worker(object): while self.alive: self.nr = 0 self.notify() - try: - client, addr = self.socket.accept() - self.handle(client, addr) - self.nr += 1 - except socket.error, e: - if e[0] not in (errno.EAGAIN, errno.ECONNABORTED): - raise + + # accept a new connection + self.accept() # Keep processing clients until no one is waiting. # This prevents the need to select() for every