On 05/03, Samuel Lijin wrote: > On Wed, May 3, 2017 at 12:14 PM, Stefan Beller <sbeller@xxxxxxxxxx> wrote: > > On Wed, May 3, 2017 at 4:31 AM, Samuel Lijin <sxlijin@xxxxxxxxx> wrote: > >> > >> Just to throw out an example, I'm relatively new to the codebase (I've > >> been lurking on the mailing list for a few months now) and for a > >> recent project (I'm an undergrad wrapping up my senior year, and one > >> of my classes' final projects was to do something that involved > >> concurrency) I took a shot at parallelizing the estimate_similarity() > >> calls in diffcore_rename(). The only way I was able to get it to work > >> was by dropping global mutexes in one or two files (the code for those > >> mutexes still makes me cringe), because of concurrent writes to global > >> data structures. > > > > That sounds like a challenge. As we have many globals, we need to be > > very careful about threading. > > > > Also an interesting discussion about threading: > > https://public-inbox.org/git/9e4733910708111412t48c1beaahfbaa2c68a02f64f1@xxxxxxxxxxxxxx/ > > Thanks. > > > Are the patches available for discussion? > > I was planning on revisiting the patch series before sending it out - > the changes in attr.c and sha1_file.c are not pretty (and I'm pretty > sure one of them is non-portable) - but it is published at > https://github.com/sxlijin/git/commits/parallelize.thread-pool.1 (it's > based off v2.12.2). I spent a good chunk of time reworking the attribute code a few months back in order to make it thread-safe so you may want to rebase on top of a newer version and see if your changes get a little less messy (if so then I did my job :). -- Brandon Williams