
Method _dictRemove of pollreactor.py: def _dictRemove(self, selectable, mdict): try: # the easy way fd = reader.fileno() except: # the hard way: necessary because fileno() may disappear at any # moment, thanks to python's underlying sockets impl for fd, fdes in selectables.items(): if selectable is fdes: break else: # Hmm, maybe not the right course of action? This method can't # fail, because it happens inside error detection... return if mdict.has_key(fd): del mdict[fd] self._updateRegistration(fd) First, "reader.fileno()" is just not going to work because there is no variable "reader" in the scope. This error is hidden by the all-encompassing except clause. Second, this comment about fileno() disappearing... I don't believe it. Does anyone know if this is really true? Code works (in my limited tests) if changed to: def _dictRemove(self, selectable, mdict): fd = selectable.fileno() if mdict.has_key(fd): del mdict[fd] self._updateRegistration(fd) -Eric