summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2014-03-25 13:41:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-04-16 16:29:41 (GMT)
commit39539495acb24abfb4dee551e3e9f2e696be7abf (patch)
treefbf97b4f412312b0788e290fc4008e616bdc28eb /Makefile
parent5f95c9f850b19b368c43ae399cc831b17a26a5ac (diff)
downloadgit-39539495acb24abfb4dee551e3e9f2e696be7abf.zip
git-39539495acb24abfb4dee551e3e9f2e696be7abf.tar.gz
git-39539495acb24abfb4dee551e3e9f2e696be7abf.tar.bz2
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>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile7
1 files changed, 0 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index dddaf4f..00a7084 100644
--- a/Makefile
+++ b/Makefile
@@ -191,9 +191,6 @@ all::
# Define NO_STRUCT_ITIMERVAL if you don't have struct itimerval
# This also implies NO_SETITIMER
#
-# Define NO_THREAD_SAFE_PREAD if your pread() implementation is not
-# thread-safe. (e.g. compat/pread.c or cygwin)
-#
# Define NO_FAST_WORKING_DIRECTORY if accessing objects in pack files is
# generally faster on your platform than accessing the working directory.
#
@@ -1341,10 +1338,6 @@ endif
ifdef NO_PREAD
COMPAT_CFLAGS += -DNO_PREAD
COMPAT_OBJS += compat/pread.o
- NO_THREAD_SAFE_PREAD = YesPlease
-endif
-ifdef NO_THREAD_SAFE_PREAD
- BASIC_CFLAGS += -DNO_THREAD_SAFE_PREAD
endif
ifdef NO_FAST_WORKING_DIRECTORY
BASIC_CFLAGS += -DNO_FAST_WORKING_DIRECTORY