Re: [PATCH v2 3/3] grep: disable threading in all but worktree case
- From
Thomas Rast <trast@student.ethz.ch>
- Date
- Dec 23, 2011, 22:49 UTC
- Message-ID
- <87mxaihpiq.fsf@thomas.inf.ethz.ch>
- In-Reply-To
- <CACBZZX6hboo4wu3fOs+CHnxsdmedxw72GFMVttQzmHzpcZbqoQ@mail.gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
Show 10 quoted lines
> On Fri, Dec 2, 2011 at 14:07, Thomas Rast <trast@student.ethz.ch> 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