This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author tgeorgiev
Recipients tgeorgiev
Date 2011-01-10.06:40:22
SpamBayes Score 0.0056614927
Marked as misclassified No
Message-id <1294641638.26.0.753920382409.issue10878@psf.upfronthosting.co.za>
In-reply-to
Content
I am trying to add a simple timer to each created socket and destroy it
once the timer expires:

class client(asyncore.dispatcher):
    def __init__(self,host):
    ...
    self.timeout = time.time() + 5

    def readable(self):
        if time.time() >= self.timeout:
            self.close()
        return True

When running that code, it raises an exception:

asyncore.loop(timeout=0.8)
  File "/usr/lib/python2.6/asyncore.py", line 211, in loop
    poll_fun(timeout)
  File "/usr/lib/python2.6/asyncore.py", line 144, in poll
    raise
  File "/usr/lib/python2.6/asyncore.py", line 141, in poll
    r, w, e = select.select(r, w, e, timeout)
select.error: (9, 'Bad file descriptor')


Although del_channel is executed properly and the socket is removed from the map, the poll function is not updated with that info and continues to keep the socket into the r,w,e.
History
Date User Action Args
2011-01-10 06:40:38tgeorgievsetrecipients: + tgeorgiev
2011-01-10 06:40:38tgeorgievsetmessageid: <1294641638.26.0.753920382409.issue10878@psf.upfronthosting.co.za>
2011-01-10 06:40:22tgeorgievlinkissue10878 messages
2011-01-10 06:40:22tgeorgievcreate