Partially fix #4098.

This is, however, only a half fix as this fixes that it fails when
there's None in waiting_descriptors[2], but actually, there never
should be None, so I have to investigate why there was none.

This patch is, however, correct and needed and the other queues also
have that check. It's just that I also need to fix the reason for
the None in the queue.
This commit is contained in:
js 2008-07-15 23:23:31 +00:00
parent 6b9bfab6d1
commit 3bd76e406a
1 changed files with 9 additions and 7 deletions

View File

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