check error before incoming or outgoing events. Fixes #5991

This commit is contained in:
Yann Leboulanger 2010-10-25 21:06:45 +02:00
parent 1d8d6a4542
commit 26d6b50e3e
1 changed files with 8 additions and 6 deletions

View File

@ -388,20 +388,22 @@ class IdleQueue:
self.unplug_idle(fd)
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)
obj.pollin()
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
def process(self):