From: Stefan Zager Date: Sat, 15 Feb 2014 00:50:28 GMT Subject: Re: Make the git codebase thread-safe Message-ID: In-Reply-To: On Fri, Feb 14, 2014 at 4:45 PM, Duy Nguyen wrote: > On Sat, Feb 15, 2014 at 2:16 AM, Zachary Turner wrote: >> (Gah, sorry if you're receiving multiple emails to your personal >> addresses, I need to get used to manually setting Plain-text mode >> every time I send a message). >> >> For the mixed read, we wouldn't be looking for another caller of >> pread() (since it doesn't care what the file pointer is), but instead >> a caller of read() or lseek() (since those do depend on the current >> file pointer). In index-pack.c, I see two possible culprits: >> >> 1) A call to xread() from inside fill() >> 2) A call to lseek in parse_pack_objects() >> >> Do you think these could be related? If so, maybe that opens up some >> other solutions? > > For index-pack alone, what's wrong with open one file handle per thread? Nothing wrong with that, except that it would mean either using thread-local storage (which the code doesn't currently use); or plumbing pack_fd through the call stack, which doesn't sound very fun. Stefan > -- > Duy