diff --git a/src/common/xmpp/idlequeue.py b/src/common/xmpp/idlequeue.py index db0c575bd..5ee73c987 100644 --- a/src/common/xmpp/idlequeue.py +++ b/src/common/xmpp/idlequeue.py @@ -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()