Index: src/common/xmpp/idlequeue.py =================================================================== --- src/common/xmpp/idlequeue.py (revision 12039) +++ src/common/xmpp/idlequeue.py (revision 12910) @@ -389,4 +389,11 @@ return False + if flags & IS_CLOSED: + # io error, don't expect more events + self.remove_timeout(obj.fd) + self.unplug_idle(obj.fd) + obj.pollend() + return False + if flags & PENDING_READ: #print 'waiting read on %d, flags are %d' % (fd, flags) @@ -394,13 +401,8 @@ return True - elif flags & PENDING_WRITE: + if flags & PENDING_WRITE: obj.pollout() return True - elif flags & IS_CLOSED: - # io error, don't expect more events - self.remove_timeout(obj.fd) - self.unplug_idle(obj.fd) - obj.pollend() return False