Re: [PATCH/RFC] grep: turn off threading when recursing submodules
- From
Jeff King <peff@peff.net>
- Date
- Oct 19, 2017, 19:34 UTC
- Message-ID
- <20171019193413.prx5pkmwaxk6mpdt@sigill.intra.peff.net>
- In-Reply-To
- <20171019192618.GB84767@google.com>
On Thu, Oct 19, 2017 at 12:26:18PM -0700, Brandon Williams wrote:
Show 10 quoted lines
> One alternative to turning off threading would be to employ proper > locking (like I failed to do) by wrapping the call the > 'add_to_alternates_memory()' in calls to grep_read_lock/unlock: > > + grep_read_lock(); > add_to_alternates_memory(submodule.objectdir); > + grep_read_unlock(); > > That way adding the submodule to the object database won't happen at the > same time another thread is trying to read from the object store.
Yeah, I think that is the right approach. Many of Git's APIs aren't thread-safe, so we need a big mutex around "I am doing anything except actually looking at the already-read blob contents". We just missed this spot.
-Peff