Issue #23485: select.poll.poll() is now retried when interrupted by a signal
diff --git a/Lib/selectors.py b/Lib/selectors.py
index 4f2a377..bf48ebf 100644
--- a/Lib/selectors.py
+++ b/Lib/selectors.py
@@ -359,11 +359,10 @@
                 # poll() has a resolution of 1 millisecond, round away from
                 # zero to wait *at least* timeout seconds.
                 timeout = math.ceil(timeout * 1e3)
+
+            fd_event_list = self._poll.poll(timeout)
+
             ready = []
-            try:
-                fd_event_list = self._poll.poll(timeout)
-            except InterruptedError:
-                return ready
             for fd, event in fd_event_list:
                 events = 0
                 if event & ~select.POLLIN: