From 7067b5d92770569dcadb7c637517c5fc242339c5 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 21 Jan 2014 17:49:41 +0100 Subject: [PATCH] selectors: add a comment to explain why and how poll timeout is rounded --- Lib/selectors.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Lib/selectors.py b/Lib/selectors.py index 63392f5eb93..f8b56cd4331 100644 --- a/Lib/selectors.py +++ b/Lib/selectors.py @@ -354,10 +354,12 @@ def unregister(self, fileobj): def select(self, timeout=None): if timeout is None: timeout = None - elif timeout < 0: + elif timeout <= 0: timeout = 0 else: - timeout = int(math.ceil(timeout * 1000.0)) + # poll() has a resolution of 1 millisecond, round away from + # zero to wait *at least* timeout seconds. + timeout = int(math.ceil(timeout * 1e3)) ready = [] try: fd_event_list = self._poll.poll(timeout)