[PATCH 3 of 3] worker: handle worker failures more aggressively

Bryan O'Sullivan bos at serpentine.com
Tue Feb 19 16:29:16 CST 2013


On Tue, Feb 19, 2013 at 2:23 PM, Isaac Jurado <diptongo at gmail.com> wrote:

> > +                problem[0] = _exitstatus(st)
>
> This single element list looks quite strange.  Does it have to do with
> working around the closure or the scoping?


Welcome to Python, where we can't have nice lexically scoped things.

> +    t = threading.Thread(target=waitforworkers)
> > +    t.start()
>
> Please pardon my ignorance, but the execution flow is starting to get
> confusing.  If I understood correctly, the idea is to kill the other
> children whenever one fails, right?
>

Yes.


> What about putting all workers in the same process group, but different
> to the parent?


Process groups only exist on Unix. This code should (mostly?) work
untouched on other platforms.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20130219/8f1199ca/attachment.html>


More information about the Mercurial-devel mailing list