From: Junio C Hamano Date: Wed, 24 May 2017 04:45:32 GMT Subject: Re: [PATCH v2 2/7] grep: skip pthreads overhead when using one thread Message-ID: In-Reply-To: <20170523192453.14172-3-avarab@gmail.com> Ævar Arnfjörð Bjarmason writes: > Skip the administrative overhead of using pthreads when only using one > thread. Instead take the non-threaded path which would be taken under > NO_PTHREADS. > > The threading support was initially added in commit > 5b594f457a ("Threaded grep", 2010-01-25) with a hardcoded compile-time > number of 8 threads. Later the number of threads was made configurable > in commit 89f09dd34e ("grep: add --threads= option and > grep.threads configuration", 2015-12-15). > > That change did not add any special handling for --threads=1. Now we > take a slightly faster path by skipping thread handling entirely when > 1 thread is requested. OK, this is what Peff and you were discussing in the earlier round, having the controller do the work himself, instead of sitting and waiting for a sole worker to finish the work. Looks good. Thanks. > > Signed-off-by: Ævar Arnfjörð Bjarmason > --- > builtin/grep.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/builtin/grep.c b/builtin/grep.c > index 12e62fcbf3..bd008cb100 100644 > --- a/builtin/grep.c > +++ b/builtin/grep.c > @@ -1238,6 +1238,8 @@ int cmd_grep(int argc, const char **argv, const char *prefix) > num_threads = GREP_NUM_THREADS_DEFAULT; > else if (num_threads < 0) > die(_("invalid number of threads specified (%d)"), num_threads); > + if (num_threads == 1) > + num_threads = 0; > #else > if (num_threads) > warning(_("no threads support, ignoring --threads"));