Issue #23485: select.kqueue.control() is now retried when interrupted by a signal
diff --git a/Lib/selectors.py b/Lib/selectors.py
index 2a0a44c..a3f2e78 100644
--- a/Lib/selectors.py
+++ b/Lib/selectors.py
@@ -549,11 +549,9 @@
         def select(self, timeout=None):
             timeout = None if timeout is None else max(timeout, 0)
             max_ev = len(self._fd_to_key)
+            kev_list = self._kqueue.control(None, max_ev, timeout)
+
             ready = []
-            try:
-                kev_list = self._kqueue.control(None, max_ev, timeout)
-            except InterruptedError:
-                return ready
             for kev in kev_list:
                 fd = kev.ident
                 flag = kev.filter