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). > Thanks, > Stefan