Message 209008 - Python tracker (original) (raw)
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?