git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 2/7] grep: skip pthreads overhead when using one thread

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
May 13, 2017, 23:45 UTC
Message-ID
<20170513234535.12749-3-avarab@gmail.com>
In-Reply-To
<20170513234535.12749-1-avarab@gmail.com>

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>
---
 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"));
-- 
2.11.0
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 3 of 12 in “PCRE v2, PCRE v1 JIT, log -P & fixes”
  1. 0/7 PCRE v2, PCRE v1 JIT, log -P & fixesÆvar Arnfjörð Bjarmason, May 13, 2017
  2. 1/7 grep: don't redundantly compile throwaway patterns under threadingÆvar Arnfjörð Bjarmason, May 13, 2017
  3. 2/7 grep: skip pthreads overhead when using one threadÆvar Arnfjörð Bjarmason, May 13, 2017
  4. 3/7 log: add -P as a synonym for --perl-regexpÆvar Arnfjörð Bjarmason, May 13, 2017
  5. 4/7 grep: add support for the PCRE v1 JIT APIÆvar Arnfjörð Bjarmason, May 13, 2017
  6. Simon RuderichMay 14, 2017
  7. Ævar Arnfjörð BjarmasonMay 14, 2017
  8. Ævar Arnfjörð BjarmasonMay 14, 2017
  9. Junio C HamanoMay 15, 2017
  10. 6/7 grep: un-break building with PCRE < 8.20Ævar Arnfjörð Bjarmason, May 13, 2017
  11. 5/7 grep: un-break building with PCRE < 8.32Ævar Arnfjörð Bjarmason, May 13, 2017
  12. 7/7 grep: add support for PCRE v2Ævar Arnfjörð Bjarmason, May 13, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.