index-pack: work around thread-unsafe pread()
commit39539495acb24abfb4dee551e3e9f2e696be7abf
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Tue, 25 Mar 2014 13:41:41 +0000 (25 20:41 +0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 16 Apr 2014 16:29:41 +0000 (16 09:29 -0700)
treefbf97b4f412312b0788e290fc4008e616bdc28eb
parent5f95c9f850b19b368c43ae399cc831b17a26a5ac
index-pack: work around thread-unsafe pread()

Multi-threaing of index-pack was disabled with c0f8654
(index-pack: Disable threading on cygwin - 2012-06-26), because
pread() implementations for Cygwin and MSYS were not thread
safe.  Recent Cygwin does offer usable pread() and we enabled
multi-threading with 103d530f (Cygwin 1.7 has thread-safe pread,
2013-07-19).

Work around this problem on platforms with a thread-unsafe
pread() emulation by opening one file handle per thread; it
would prevent parallel pread() on different file handles from
stepping on each other.

Also remove NO_THREAD_SAFE_PREAD that was introduced in c0f8654
because it's no longer used anywhere.

This workaround is unconditional, even for platforms with
thread-safe pread() because the overhead is small (a couple file
handles more) and not worth fragmenting the code.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Tested-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
builtin/index-pack.c
config.mak.uname