Issue #20452: select and selectors round (again) timeout away from zero for
poll and epoll

Improve also debug info to analyze the issue
diff --git a/Lib/selectors.py b/Lib/selectors.py
index b1b530a..52ee8db 100644
--- a/Lib/selectors.py
+++ b/Lib/selectors.py
@@ -8,6 +8,7 @@
 from abc import ABCMeta, abstractmethod, abstractproperty
 from collections import namedtuple, Mapping
 import functools
+import math
 import select
 import sys
 
@@ -369,8 +370,9 @@
             elif timeout <= 0:
                 timeout = 0
             else:
-                # Round towards zero
-                timeout = int(timeout * 1000)
+                # 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)
@@ -430,6 +432,10 @@
                 timeout = -1
             elif timeout <= 0:
                 timeout = 0
+            else:
+                # epoll_wait() has a resolution of 1 millisecond, round away
+                # from zero to wait *at least* timeout seconds.
+                timeout = math.ceil(timeout * 1e3) * 1e-3
             max_ev = len(self._fd_to_key)
             ready = []
             try: