fix write()

This commit is contained in:
benoitc 2010-01-18 17:58:00 +01:00
parent b6e52bef8a
commit 6714b30ddc
2 changed files with 5 additions and 7 deletions

View File

@ -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):

View File

@ -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