process all incoming and outgoing queues even if we receive big things (a file). Fixes #3380
This commit is contained in:
parent
1e75af9e2d
commit
8c5b3f3a92
|
@ -204,15 +204,15 @@ class SelectIdleQueue(IdleQueue):
|
||||||
except select.error, e:
|
except select.error, e:
|
||||||
waiting_descriptors = ((),(),())
|
waiting_descriptors = ((),(),())
|
||||||
if e[0] != 4: # interrupt
|
if e[0] != 4: # interrupt
|
||||||
raise
|
raise
|
||||||
for fd in waiting_descriptors[0]:
|
for fd in waiting_descriptors[0]:
|
||||||
self.queue.get(fd).pollin()
|
q = self.queue.get(fd)
|
||||||
self.check_time_events()
|
if q:
|
||||||
return True
|
q.pollin()
|
||||||
for fd in waiting_descriptors[1]:
|
for fd in waiting_descriptors[1]:
|
||||||
self.queue.get(fd).pollout()
|
q = self.queue.get(fd)
|
||||||
self.check_time_events()
|
if q:
|
||||||
return True
|
q.pollout()
|
||||||
for fd in waiting_descriptors[2]:
|
for fd in waiting_descriptors[2]:
|
||||||
self.queue.get(fd).pollend()
|
self.queue.get(fd).pollend()
|
||||||
self.check_time_events()
|
self.check_time_events()
|
||||||
|
|
Loading…
Reference in New Issue