From: Stefan Beller <sbeller@google.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: "git@vger.kernel.org" <git@vger.kernel.org>,
Ramsay Jones <ramsay@ramsayjones.plus.com>,
Jacob Keller <jacob.keller@gmail.com>, Jeff King <peff@peff.net>,
Jonathan Nieder <jrnieder@gmail.com>,
Johannes Schindelin <johannes.schindelin@gmail.com>,
Jens Lehmann <Jens.Lehmann@web.de>,
Vitali Lovich <vlovich@gmail.com>,
Eric Sunshine <ericsunshine@gmail.com>
Subject: Re: [PATCH 0/2] Another squash on run-command: add an asynchronous parallel child processor
Date: Fri, 25 Sep 2015 12:19:26 -0700 [thread overview]
Message-ID: <CAGZ79kYdrV2fyzWOCmrgEZBXDtEd+HMb9N3yrPquzCDfVogXCQ@mail.gmail.com> (raw)
In-Reply-To: <xmqq612y48x5.fsf@gitster.mtv.corp.google.com>
On Fri, Sep 25, 2015 at 12:04 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Stefan Beller <sbeller@google.com> writes:
>
>>> I think two sensible choices that start-failure and return-value can
>>> make are
>>>
>>> (1) This one task failed, but that is OK. Please let the other
>>> tasks run [*1*].
>>>
>>> (2) There is something seriously wrong with the whole world and I
>>> declare an emergency. Please kill the other ones and exit.
>>
>> (3) There is something wrong, such that I cannot finish my
>> job, but I know the other 15 processes help towards the goal,
>> so I want to let them live on until they are done. E.g: fetch submodules
>> may want to take this strategy if it fails to start another sub
>> process fetching.
>
> How is that different from (1)? Do you meann "let other ones that
> are already running continue, but do not spawn any new ones?"
Right. "Phasing out" before gracefully dying. Well to achieve this,
we don't need more options here. (Just set a flag to not return more
work in get_next_task).
>
>> We could also offer more access to the pp machinery and an implementation for
>> (2) might look like this:
>> ...
>> By having the pointer to the pp struct passed around, we allow
>> for adding new callback functions to be added later to the
>> pp machinery, which may not be expressed via a return code.
>
> What you are suggesting would lead to the same "different smart
> participants making decisions locally, so you need to run around and
> follow all the detailed codepaths to understand what is going on"
> design.
>
> I was hoping that we have already passed discussing that stage.
>
> The whole point of that "SQUASH???" commit was to correct the design
> of the overall structure so that we make the central dispatcher that
> uses bunch of "dumb" helpers (that do not make policy decisions
> locally on their own) as the single place you need to read in order
> to understand the logic.
And I thought the discussion there was focused on the internals of the
dispatcher. (You need to only read one place inside _that_ file now)
This discussion would have focused on the public API side (What do we
want to hide, how do we want to hide it?), which would be different enough
for me to warrant a new discussion.
But I guess I'll just go with your suggestion for now to have the return value
indicate a full stop or keep going.
next prev parent reply other threads:[~2015-09-25 19:19 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-23 1:45 [PATCHv4 00/14] fetch submodules in parallel and a preview on parallel "submodule update" Stefan Beller
2015-09-23 1:45 ` [PATCHv4 01/14] submodule: Send "Fetching submodule <foo>" to standard error Stefan Beller
2015-09-23 1:45 ` [PATCHv4 02/14] xread: poll on non blocking fds Stefan Beller
2015-09-23 1:45 ` [PATCHv4 03/14] xread_nonblock: add functionality to read from fds without blocking Stefan Beller
2015-09-23 1:45 ` [PATCHv4 04/14] strbuf: add strbuf_read_once to read " Stefan Beller
2015-09-23 1:45 ` [PATCHv4 05/14] run-command: factor out return value computation Stefan Beller
2015-09-23 1:45 ` [PATCHv4 06/14] run-command: add an asynchronous parallel child processor Stefan Beller
2015-09-23 6:29 ` Junio C Hamano
2015-09-23 17:53 ` Stefan Beller
2015-09-23 18:04 ` Junio C Hamano
2015-09-23 19:34 ` Junio C Hamano
2015-09-23 19:39 ` Stefan Beller
2015-09-23 19:47 ` Junio C Hamano
2015-09-23 6:47 ` Junio C Hamano
2015-09-23 14:59 ` Junio C Hamano
2015-09-23 17:54 ` Junio C Hamano
2015-09-23 23:41 ` [PATCHv5] Another squash on " Stefan Beller
2015-09-24 2:17 ` Junio C Hamano
2015-09-24 21:13 ` [PATCH 0/2] " Stefan Beller
2015-09-24 21:13 ` [PATCH 2/2] SQUASH for "fetch_populated_submodules: use new parallel job processing" Stefan Beller
2015-09-24 21:13 ` [PATCH 1/2] SQUASH??? Stefan Beller
2015-09-25 0:49 ` Junio C Hamano
2015-09-25 1:09 ` Junio C Hamano
2015-09-25 17:52 ` Stefan Beller
2015-09-25 17:56 ` Junio C Hamano
2015-09-25 1:08 ` [PATCH 0/2] Another squash on run-command: add an asynchronous parallel child processor Junio C Hamano
2015-09-25 18:56 ` Stefan Beller
2015-09-25 19:04 ` Junio C Hamano
2015-09-25 19:19 ` Stefan Beller [this message]
2015-09-25 19:32 ` Junio C Hamano
2015-09-23 1:45 ` [PATCHv4 07/14] fetch_populated_submodules: use new parallel job processing Stefan Beller
2015-09-23 1:45 ` [PATCHv4 08/14] submodules: allow parallel fetching, add tests and documentation Stefan Beller
2015-09-23 1:45 ` [PATCHv4 09/14] submodule-config: Untangle logic in parse_config Stefan Beller
2015-09-23 1:45 ` [PATCHv4 10/14] submodule config: keep update strategy around Stefan Beller
2015-09-23 1:45 ` [PATCHv4 11/14] git submodule update: cmd_update_recursive Stefan Beller
2015-09-23 1:45 ` [PATCHv4 12/14] git submodule update: cmd_update_clone Stefan Beller
2015-09-23 20:13 ` Junio C Hamano
2015-09-23 1:45 ` [PATCHv4 13/14] git submodule update: cmd_update_fetch Stefan Beller
2015-09-23 1:45 ` [PATCHv4 14/14] Rewrite submodule update in C Stefan Beller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAGZ79kYdrV2fyzWOCmrgEZBXDtEd+HMb9N3yrPquzCDfVogXCQ@mail.gmail.com \
--to=sbeller@google.com \
--cc=Jens.Lehmann@web.de \
--cc=ericsunshine@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jacob.keller@gmail.com \
--cc=johannes.schindelin@gmail.com \
--cc=jrnieder@gmail.com \
--cc=peff@peff.net \
--cc=ramsay@ramsayjones.plus.com \
--cc=vlovich@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).