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):
|
def write(sock, data):
|
||||||
buf = ""
|
buf = ""
|
||||||
buf += data
|
buf += data
|
||||||
dlen = len(data)
|
|
||||||
while buf:
|
while buf:
|
||||||
try:
|
try:
|
||||||
bytes = sock.send(buf)
|
bytes = sock.send(buf)
|
||||||
if bytes < dlen:
|
if bytes < len(buf):
|
||||||
buf = buf[bytes:]
|
buf = buf[bytes:]
|
||||||
continue
|
continue
|
||||||
return dlen
|
return bytes
|
||||||
except socket.error, e:
|
except socket.error, e:
|
||||||
if e[0] in (errno.EWOULDBLOCK, errno.EAGAIN):
|
if e[0] in (errno.EWOULDBLOCK, errno.EAGAIN):
|
||||||
break
|
break
|
||||||
elif e[0] in (errno.EPIPE,):
|
elif e[0] in (errno.EPIPE,):
|
||||||
continue
|
break
|
||||||
raise
|
raise
|
||||||
|
|
||||||
def write_nonblock(sock, data):
|
def write_nonblock(sock, data):
|
||||||
|
|||||||
@ -96,7 +96,7 @@ class Worker(object):
|
|||||||
|
|
||||||
while self.alive:
|
while self.alive:
|
||||||
try:
|
try:
|
||||||
ret = select.select([self.socket], [], [], 15)
|
ret = select.select([self.socket], [], [], 2.0)
|
||||||
if ret[0]:
|
if ret[0]:
|
||||||
break
|
break
|
||||||
except select.error, e:
|
except select.error, e:
|
||||||
@ -125,8 +125,7 @@ class Worker(object):
|
|||||||
spinner = (spinner+1) % 2
|
spinner = (spinner+1) % 2
|
||||||
self._fchmod(spinner)
|
self._fchmod(spinner)
|
||||||
except socket.error, e:
|
except socket.error, e:
|
||||||
if e[0] in [errno.EAGAIN, errno.ECONNABORTED,
|
if e[0] in [errno.EAGAIN, errno.ECONNABORTED]:
|
||||||
errno.EWOULDBLOCK]:
|
|
||||||
break # Uh oh!
|
break # Uh oh!
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user