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.

> +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

Reply via email to