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