mercurial/worker.py
changeset 49302 ee4537e365c8
parent 49280 311fcc5a65f6
child 49303 dfdf85f37215
--- a/mercurial/worker.py	Tue May 31 03:39:42 2022 +0200
+++ b/mercurial/worker.py	Tue May 31 04:11:34 2022 +0200
@@ -184,20 +184,15 @@
     def waitforworkers(blocking=True):
         for pid in pids.copy():
             p = st = 0
-            while True:
-                try:
-                    p, st = os.waitpid(pid, (0 if blocking else os.WNOHANG))
-                    break
-                except OSError as e:
-                    if e.errno == errno.EINTR:
-                        continue
-                    elif e.errno == errno.ECHILD:
-                        # child would already be reaped, but pids yet been
-                        # updated (maybe interrupted just after waitpid)
-                        pids.discard(pid)
-                        break
-                    else:
-                        raise
+            try:
+                p, st = os.waitpid(pid, (0 if blocking else os.WNOHANG))
+            except OSError as e:
+                if e.errno == errno.ECHILD:
+                    # child would already be reaped, but pids yet been
+                    # updated (maybe interrupted just after waitpid)
+                    pids.discard(pid)
+                else:
+                    raise
             if not p:
                 # skip subsequent steps, because child process should
                 # be still running in this case
@@ -302,10 +297,6 @@
                     key.fileobj.close()
                     # pytype: enable=attribute-error
                     openpipes -= 1
-                except IOError as e:
-                    if e.errno == errno.EINTR:
-                        continue
-                    raise
     except:  # re-raises
         killworkers()
         cleanup()