process all incoming and outgoing queues even if we receive big things (a file). Fixes #3380

This commit is contained in:
Yann Leboulanger 2007-09-03 20:54:28 +00:00
parent 1e75af9e2d
commit 8c5b3f3a92
1 changed files with 8 additions and 8 deletions

View File

@ -204,15 +204,15 @@ class SelectIdleQueue(IdleQueue):
except select.error, e:
waiting_descriptors = ((),(),())
if e[0] != 4: # interrupt
raise
for fd in waiting_descriptors[0]:
self.queue.get(fd).pollin()
self.check_time_events()
return True
raise
for fd in waiting_descriptors[0]:
q = self.queue.get(fd)
if q:
q.pollin()
for fd in waiting_descriptors[1]:
self.queue.get(fd).pollout()
self.check_time_events()
return True
q = self.queue.get(fd)
if q:
q.pollout()
for fd in waiting_descriptors[2]:
self.queue.get(fd).pollend()
self.check_time_events()