STINNER Victor added the comment: Le 24 janv. 2014 00:08, "Antoine Pitrou" <rep...@bugs.python.org> a écrit : > > For example, it may call again epoll_wait() if it took less than timeout > > seconds and returned no event, *and* the ready list is empty. > > Easy solution: add 1 ms. to the timeout before calling epoll_wait(). > Perhaps we need the same kind of thing for select() and poll() too.
It doesn't fix the case when EpollSelector.select() got an InterruptedError. Adding 1 ms works around the (now fixed) timeout rounding issue but I prefered to round differently to not sleep longer than requested (try to respect deadline). About the "system clock", it's possibke than Linux uses a different clock for epoll_wait() than CLOCK_MONOTONIC, and than clocks have a different resolution. I didn't test the rounding issue on Windows where time.monotonic() has a resolution between... 1 and 16 ms! ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue20311> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com