# HG changeset patch # User Matt Mackall # Date 1373993633 18000 # Node ID 3185b347ae9829ea275973f65460539fa01f36f6 # Parent 447332970d7bbddfd81a12178ade471b7b5756b2 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. diff -r 447332970d7b -r 3185b347ae98 mercurial/worker.py --- 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)