mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
fix write()
This commit is contained in:
parent
b6e52bef8a
commit
6714b30ddc
@ -70,19 +70,18 @@ def read_partial(sock, length):
|
||||
def write(sock, data):
|
||||
buf = ""
|
||||
buf += data
|
||||
dlen = len(data)
|
||||
while buf:
|
||||
try:
|
||||
bytes = sock.send(buf)
|
||||
if bytes < dlen:
|
||||
if bytes < len(buf):
|
||||
buf = buf[bytes:]
|
||||
continue
|
||||
return dlen
|
||||
return bytes
|
||||
except socket.error, e:
|
||||
if e[0] in (errno.EWOULDBLOCK, errno.EAGAIN):
|
||||
break
|
||||
elif e[0] in (errno.EPIPE,):
|
||||
continue
|
||||
break
|
||||
raise
|
||||
|
||||
def write_nonblock(sock, data):
|
||||
|
||||
@ -96,7 +96,7 @@ class Worker(object):
|
||||
|
||||
while self.alive:
|
||||
try:
|
||||
ret = select.select([self.socket], [], [], 15)
|
||||
ret = select.select([self.socket], [], [], 2.0)
|
||||
if ret[0]:
|
||||
break
|
||||
except select.error, e:
|
||||
@ -125,8 +125,7 @@ class Worker(object):
|
||||
spinner = (spinner+1) % 2
|
||||
self._fchmod(spinner)
|
||||
except socket.error, e:
|
||||
if e[0] in [errno.EAGAIN, errno.ECONNABORTED,
|
||||
errno.EWOULDBLOCK]:
|
||||
if e[0] in [errno.EAGAIN, errno.ECONNABORTED]:
|
||||
break # Uh oh!
|
||||
raise
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user