Re: [PATCH 01/12] grep: add ability to disable threading with --threads=0 or grep.threads=0
- From
Jeff King <peff@peff.net>
- Date
- Apr 11, 2017, 10:06 UTC
- Message-ID
- <20170411100656.5bptxdaptc4zznan@sigill.intra.peff.net>
- In-Reply-To
- <20170408132506.5415-2-avarab@gmail.com>
On Sat, Apr 08, 2017 at 01:24:55PM +0000, Ævar Arnfjörð Bjarmason wrote:
> Add the ability to entirely disable threading by having grep.threads=0 > in the config or --threads=0 on the command-line.
In pack-objects and index-pack, --threads=0 means "auto-detect". It seems like we should try to keep this consistent.
Wouldn't --threads=1 be a better way to disable threading? Pack-objects is smart enough to just use the non-threaded code path entirely in that case (rather than wasting time spawning a single worker thread). Grep should probably do the same.
Show 10 quoted lines
> +static int thread_callback(const struct option *opt,
> + const char *arg, int unset)
> +{
> + int *threads = (int*)opt->value;
> + char *end;
> +
> + if (unset) {
> + *threads = GREP_NUM_THREADS_DEFAULT;
> + return 0;
> + }This means that "--no-threads" will use 8 threads. Which _kind of_ makes sense in that it cancels any previous "--threads", but I wonder if it should be the same as "--threads=1".
This isn't really a change in behavior from the existing code, though (OPT_INTEGER will set it to 0 in that case, too, and we'd later pick up the default value).
-Peff