STINNER Victor added the comment:

Summary of this issue:

- test_asyncio was still failing because BaseEventLoop._granularity was not 
enough to round correctly timeouts, deadlines and times. poll/epoll rounded 
towards zero, whereas asyncio rounds away from zero. So the maximum difference 
in _run_once() was 2 x resolution (2 ms), not resolution (1 ms)
- I modified poll and epoll in select and selectors modules in Python 3.4 to 
round the timeout away from zero. So the maximum difference is now resolution 
(1 ms for poll/epoll).

Now the question is: should we backport the rounding changes in select and 
selectors in Python 3.3? It's not required for asyncio, since Tulip has its 
backport of selectors.py which has the fix. For avoid any regression, it's 
safer to leave Python 3.3 unchanged, since nobody complained. It looks like 
only asyncio is affected by this issue. In fact, I don't think that any large 
application relies on select for its event loop: C libraries like libev, 
libevent and libuv are usually preferred.

So I prefer to leave Python 3.3 unchanged.

Note: I removed my debug mode.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue20452>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to