]> granicus.if.org Git - git/commitdiff
grep: skip pthreads overhead when using one thread
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Thu, 25 May 2017 20:05:23 +0000 (20:05 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 26 May 2017 03:59:05 +0000 (12:59 +0900)
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=<num> 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.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/grep.c

index 12e62fcbf3edaaeeaa5577a81d1a4f3b7bd09a28..bd008cb100641f44925279000c030dc70ba3f340 100644 (file)
@@ -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"));