Charles-François Natali added the comment: > Richard Oudkerk added the comment: > > I remember wondering at one time why EPOLLNVAL did not exist, and realizing > that closed fds are just silently unregistered by epoll().
Exactly. > I guess the issue is that some of the selectors indicate a bad fd on > registration, and others do it when polled. > > On registration On poll > ---------------------------------------------------------------- > SelectSelector No Raises OSError > PollSelector No No (EVENT_READ or EVENT_WRITE) > EpollSelector Raises OSError No > KqueueSelector ? ? Kqueue raises OSError upon registration. Not sure about poll(). > It would be easiest to relax the test, perhaps by just checking that > conn.poll(0) raises or returns True. That's what I think too. Apparently, the test was added for this issue: http://bugs.python.org/issue3321 Basically, the goal was to check that conn.poll() wouldn't crash if passed an invalid FD (which can happen if you register a FD greater than FD_SETSIZE in a fd_set). So relaxing the check would still make sense. > Or maybe PollSelector.select() should raise OSError if POLLNVAL is indicated. > That would match the behaviour of SelectSelector.select(). Yes, that would be a possibility. I'll have to give it some more thought. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue18934> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com