Issue #17097: Make multiprocessing ignore EINTR.
diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py
index 57bf811..a051730 100644
--- a/Lib/multiprocessing/connection.py
+++ b/Lib/multiprocessing/connection.py
@@ -270,7 +270,14 @@
self._unlink = None
def accept(self):
- s, self._last_accepted = self._socket.accept()
+ while True:
+ try:
+ s, self._last_accepted = self._socket.accept()
+ except socket.error as e:
+ if e.args[0] != errno.EINTR:
+ raise
+ else:
+ break
s.setblocking(True)
fd = duplicate(s.fileno())
conn = _multiprocessing.Connection(fd)