From: Stefan Zager Date: Wed, 12 Feb 2014 18:20:12 GMT Subject: Re: Make the git codebase thread-safe Message-ID: In-Reply-To: On Wed, Feb 12, 2014 at 3:59 AM, Erik Faye-Lund wrote: > On Wed, Feb 12, 2014 at 2:54 AM, Stefan Zager wrote: >> >> We are particularly concerned with the performance of msysgit, and we >> have already chalked up a significant performance gain by turning on >> the threading code in pack-objects (which was already enabled for >> posix platforms, but not on msysgit, owing to the lack of a correct >> pread implementation). > > How did you manage to do this? I'm not aware of any way to implement > pread on Windows (without going down the insanity-path of wrapping and > potentially locking inside every IO operation)... I don't want to steal the thunder of my coworker, who wrote the implementation. He plans to submit it upstream soon-ish. It relies on using the lpOverlapped argument to ReadFile(), with some additional tomfoolery to make sure that the implicit position pointer for the file descriptor doesn't get modified. Stefan