# HG changeset patch # User Matt Mackall # Date 2013-07-16 16:53:53 # 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 --git a/mercurial/worker.py b/mercurial/worker.py --- a/mercurial/worker.py +++ b/mercurial/worker.py @@ -109,7 +109,7 @@ def _posixworker(ui, func, staticargs, a 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)