[issue20311] epoll.poll(timeout) and PollSelector.select(timeout) must round the timeout to the upper bound
Charles-François Natali
report at bugs.python.org
Thu Jan 23 23:21:08 CET 2014
Charles-François Natali added the comment:
> Ah? The manual page of epoll_wait() says:
>
> "The timeout argument specifies the minimum number of milliseconds that
epoll_wait() will block. (This interval will be rounded up to the system
clock granularity, and kernel scheduling delays mean that the blocking
interval may overrun by a small amount.)"
>
> I read minimum, not maximum here :-)
Yes, but we're talking about a 1e-4 accuracy here: I really doubt all
hardware supports high-resolution timers. epoll() returning 1e-4s before
the passed delay doesn't surprise me.
> If epoll_wait(timeout_ms) may wait less than timeout_ms seconds, asyncio
algorithm is wrong, or at least inefficient. It should loop until the time
delta is at least total_timeout seconds. See the original issue:
> http://code.google.com/p/tulip/issues/detail?id=106
Not really: sure, an early wakeup can cause spurious loops, but this should
be really rare: how often is the main event loop called with
sub-millisecond timeouts?
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue20311>
_______________________________________
More information about the Python-bugs-list
mailing list