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