This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients gvanrossum, neologix, python-dev, vstinner
Date 2014-01-31.12:16:13
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1391170573.57.0.978638167658.issue20452@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2014-01-31 12:16:13vstinnersetrecipients: + vstinner, gvanrossum, neologix, python-dev
2014-01-31 12:16:13vstinnersetmessageid: <1391170573.57.0.978638167658.issue20452@psf.upfronthosting.co.za>
2014-01-31 12:16:13vstinnerlinkissue20452 messages
2014-01-31 12:16:13vstinnercreate