changeset 19406:3185b347ae98

worker: check problem state correctly (issue3982) If a large update triggered an abort, it was possible for the main thread to still update the dirstate. This fix is incomplete, as the failing worker now doesn't generate a proper error message. This is difficult in the fork-based framework, which relies on exceptions propagating to the top of the dispatcher for formatting.
author Matt Mackall <mpm@selenic.com>
date Tue, 16 Jul 2013 11:53:53 -0500
parents 447332970d7b
children ce3d1cf957f8
files mercurial/worker.py
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/worker.py	Tue Jul 16 11:18:16 2013 -0500
+++ b/mercurial/worker.py	Tue Jul 16 11:53:53 2013 -0500
@@ -109,7 +109,7 @@
     def waitforworkers():
         for _ in pids:
             st = _exitstatus(os.wait()[1])
-            if st and not problem:
+            if st and not problem[0]:
                 problem[0] = st
                 killworkers()
     t = threading.Thread(target=waitforworkers)