Skip to content
  • Martin von Zweigbergk's avatar
    worker: raise exception instead of calling sys.exit() with child's code · 8f07f5a9c3de
    Martin von Zweigbergk authored
    When a worker process returns an error code, we would call
    `sys.exit()` with that exit code on the main process. The `SystemExit`
    exception would then get caught in `scmutil.callcatch()`, which would
    return that error code. The comment there says "Commands shouldn't
    sys.exit directly", which I agree with. This patch changes it so we
    raise a specific exception when a worker fails so we can catch
    instead. I think that means that `SystemExit` is now always an
    internal error.
    
    (I had earlier thought that this call to `sys.exit()` was from within
    the child process until Matt Harbison made me look again, so thanks
    for that!)
    
    Differential Revision: https://phab.mercurial-scm.org/D9287
    8f07f5a9c3de