(Merge 3.3) Issue #20311: Revert 033137c12d88 (02f9db3e684e),

select.epoll.poll() rounds again the timeout towards zero
This commit is contained in:
Victor Stinner 2014-01-25 14:40:04 +01:00
commit 38c72bd199
3 changed files with 1 additions and 18 deletions

View File

@ -254,17 +254,6 @@ class TestEPoll(unittest.TestCase):
self.addCleanup(epoll.close) self.addCleanup(epoll.close)
self.assertEqual(os.get_inheritable(epoll.fileno()), False) self.assertEqual(os.get_inheritable(epoll.fileno()), False)
def test_timeout_rounding(self):
# epoll_wait() has a resolution of 1 millisecond, check if the timeout
# is correctly rounded to the upper bound
epoll = select.epoll()
self.addCleanup(epoll.close)
for timeout in (1e-2, 1e-3, 1e-4):
t0 = time.monotonic()
epoll.poll(timeout)
dt = time.monotonic() - t0
self.assertGreaterEqual(dt, timeout)
def test_main(): def test_main():
support.run_unittest(TestEPoll) support.run_unittest(TestEPoll)

View File

@ -53,10 +53,6 @@ Library
- Issue #20374: Fix build with GNU readline >= 6.3. - Issue #20374: Fix build with GNU readline >= 6.3.
- Issue #20311: select.epoll.poll() now rounds the timeout away from zero,
instead of rounding towards zero. For example, a timeout of one microsecond
is now rounded to one millisecond, instead of being rounded to zero.
- Issue #20262: Warnings are raised now when duplicate names are added in the - Issue #20262: Warnings are raised now when duplicate names are added in the
ZIP file or too long ZIP file comment is truncated. ZIP file or too long ZIP file comment is truncated.

View File

@ -1458,9 +1458,7 @@ pyepoll_poll(pyEpoll_Object *self, PyObject *args, PyObject *kwds)
return NULL; return NULL;
} }
else { else {
/* epoll_wait() has a resolution of 1 millisecond, round away from zero timeout = (int)(dtimeout * 1000.0);
to wait *at least* dtimeout seconds. */
timeout = (int)ceil(dtimeout * 1000.0);
} }
if (maxevents == -1) { if (maxevents == -1) {