This is the spiritual successor to the "grep: add ability to disable threading with --threads=0 or grep.threads=0" patch I submitted as part of my PCRE series (<20170408132506.5415-2-avarab@xxxxxxxxx>). There's a long back & forth thread between me and Jeff King as a follow-up to that which I'll summarize: I'd misunderstood what --threads=1 does, because I was tracing how often a pattern was compiled, and observing that even with --threads=1 we'd compile the pattern twice. This series fixes that redundant needless compilation in 3/8, skips pthread overhead as Jeff suggested kin 3/8. The rest of the patches are a bunch of small related fixes I noticed along the way. Ævar Arnfjörð Bjarmason (8): grep: assert that threading is enabled when calling grep_{lock,unlock} grep: add tests for --threads=N and grep.threads grep: don't redundantly compile throwaway patterns under threading grep: skip pthreads overhead when using one thread tests: add a PTHREADS prerequisite pack-object & index-pack: add test for --threads warning under NO_PTHREADS pack-objects: fix buggy warning about threads under NO_PTHREADS=YesPlease grep: given --threads with NO_PTHREADS=YesPlease, warn Makefile | 1 + builtin/grep.c | 32 +++++++++++++++++++++++++------- builtin/pack-objects.c | 4 +++- t/README | 4 ++++ t/t5300-pack-object.sh | 33 +++++++++++++++++++++++++++++++++ t/t7810-grep.sh | 34 ++++++++++++++++++++++++++++++++++ t/test-lib.sh | 1 + 7 files changed, 101 insertions(+), 8 deletions(-) -- 2.11.0