mercurial/worker.py
branchstable
changeset 40472 03f7d0822ec1
parent 38740 c08ea1e219c0
child 40999 e10adebf8176
--- a/mercurial/worker.py	Mon Dec 17 20:46:09 2018 +0900
+++ b/mercurial/worker.py	Tue Dec 11 22:34:07 2018 +0900
@@ -213,11 +213,7 @@
         waitforworkers()
         signal.signal(signal.SIGCHLD, oldchldhandler)
         selector.close()
-        status = problem[0]
-        if status:
-            if status < 0:
-                os.kill(os.getpid(), -status)
-            sys.exit(status)
+        return problem[0]
     try:
         openpipes = len(pipes)
         while openpipes > 0:
@@ -236,7 +232,11 @@
         killworkers()
         cleanup()
         raise
-    cleanup()
+    status = cleanup()
+    if status:
+        if status < 0:
+            os.kill(os.getpid(), -status)
+        sys.exit(status)
 
 def _posixexitstatus(code):
     '''convert a posix exit status into the same form returned by