Remove a registered file descriptor from the epoll object.
+ .. versionchanged:: 3.9
+ The method no longer ignores the :data:`~errno.EBADF` error.
+
.. method:: epoll.poll(timeout=None, maxevents=-1)
* The :mod:`venv` activation scripts no longer special-case when
``__VENV_PROMPT__`` is set to ``""``.
+* The :meth:`select.epoll.unregister` method no longer ignores the
+ :data:`~errno.EBADF` error.
+ (Contributed by Victor Stinner in :issue:`39239`.)
+
CPython bytecode changes
------------------------
self.assertFalse(then - now > 0.01)
server.close()
- ep.unregister(fd)
+
+ with self.assertRaises(OSError) as cm:
+ ep.unregister(fd)
+ self.assertEqual(cm.exception.errno, errno.EBADF)
def test_close(self):
open_file = open(__file__, "rb")
--- /dev/null
+The :meth:`select.epoll.unregister` method no longer ignores the
+:data:`~errno.EBADF` error.
* though this argument is ignored. */
Py_BEGIN_ALLOW_THREADS
result = epoll_ctl(epfd, op, fd, &ev);
- if (errno == EBADF) {
- /* fd already closed */
- result = 0;
- errno = 0;
- }
Py_END_ALLOW_THREADS
break;
default: