Subject: Re: [PATCH v2 3/3] grep: disable threading in all but worktree case

From: Thomas Rast <[email-masked]>
Date: Fri, 23 Dec 2011 23:49:49 +0100

Ævar Arnfjörð Bjarmason <[email-masked]> writes:

> On Fri, Dec 2, 2011 at 14:07, Thomas Rast <[email-masked]> wrote:
>
>> I conjecture that this is caused by contention on
>> read_sha1_mutex. [...] So disable threading entirely when not
>> scanning the worktree
>
> Why does git-grep even need to keep a mutex to call read_sha1_file()?
> It's inherently a read-only operation isn't it? If the lock is needed
> because data is being shared between threads in sha1_file.c shouldn't
> we tackle that instead of completely disabling threading?

The problem is that all sorts of data is shared.  See

  http://thread.gmane.org/gmane.comp.version-control.git/186618

But I need to go through it again, there are some races and double locks
in the posted version.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch