git/compat
Edward Thomson ef8b53e78c poll: honor the timeout on Win32
Ensure that when passing a pipe, the gnulib poll replacement will not
return 0 before the timeout has passed.

Not obeying the timeout (and merely returning 0) causes pathological
behavior when preparing a packfile for a repository and taking a
long time to do so.  If poll were to return 0 immediately, this would
cause keep-alives to get sent as quickly as possible until the packfile
was created.  Such deviance from the standard would cause megabytes (or
more) of keep-alive packets to be sent.

GetTickCount is used as it is efficient, stable and monotonically
increasing.  (Neither GetSystemTime nor QueryPerformanceCounter have
all three of these properties.)

Signed-off-by: Edward Thomson <ethomson@microsoft.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-14 12:53:48 -07:00
..
nedmalloc Windows: do not redefine _WIN32_WINNT 2013-09-11 14:50:19 -07:00
poll poll: honor the timeout on Win32 2015-09-14 12:53:48 -07:00
regex C: have space around && and || operators 2013-10-16 10:26:39 -07:00
vcbuild Merge branch 'ks/tree-diff-nway' 2014-06-03 12:06:40 -07:00
win32 Win32: Unicode file name support (dirent) 2014-07-15 11:19:09 -07:00
apple-common-crypto.h imap-send: use Apple's Security framework for base64 encoding 2013-07-30 08:53:24 -07:00
basename.c compat: add a basename() compatibility function 2009-05-31 17:57:59 -07:00
bswap.h compat/bswap.h: detect endianness from XL C compiler macros 2014-10-27 11:51:12 -07:00
fopen.c compat/fopen.c: avoid clobbering the system defined fopen macro 2008-05-08 17:43:01 -07:00
gmtime.c date: recognize bogus FreeBSD gmtime output 2014-04-01 14:39:04 -07:00
hstrerror.c Add a local implementation of hstrerror for the system which do not have it 2007-06-15 22:48:34 -07:00
inet_ntop.c Drop system includes from inet_pton/inet_ntop compatibility wrappers 2012-02-05 16:32:33 -08:00
inet_pton.c Drop system includes from inet_pton/inet_ntop compatibility wrappers 2012-02-05 16:32:33 -08:00
memmem.c optimize compat/ memmem() 2009-03-02 18:28:06 -08:00
mingw.c Mingw: verify both ends of the pipe () call 2015-08-28 11:11:50 -07:00
mingw.h Merge branch 'nd/untracked-cache' 2015-05-26 13:24:46 -07:00
mkdir.c compat: some mkdir() do not like a slash at the end 2012-08-24 09:48:51 -07:00
mkdtemp.c Fix gitmkdtemp: correct test for mktemp() return value 2010-02-25 12:08:22 -08:00
mmap.c wrapper.c: add xpread() similar to xread() 2014-04-10 12:18:55 -07:00
msvc.c win32: use our own dirent.h 2010-11-23 16:06:50 -08:00
msvc.h MSVC: fix stat definition hell 2013-09-11 11:08:52 -07:00
obstack.c obstack.c: Fix some sparse warnings 2011-09-11 14:43:33 -07:00
obstack.h obstack: fix spelling of similar 2013-04-12 12:23:20 -07:00
pread.c Replacing the system call pread() with lseek()/xread()/lseek() sequence. 2007-01-09 16:40:40 -08:00
precompose_utf8.c Set core.precomposeunicode to true on e.g. HFS+ 2013-08-27 07:41:32 -07:00
precompose_utf8.h git on Mac OS and precomposed unicode 2012-07-08 22:03:46 -07:00
qsort.c cleanup: use internal memory allocation wrapper functions everywhere 2011-10-06 13:54:32 -07:00
setenv.c compat/setenv.c: error if name contains '=' 2011-12-14 19:31:03 -08:00
snprintf.c compat/snprintf: don't look at va_list twice 2011-12-12 09:09:35 -08:00
stat.c compat: convert modes to use portable file type values 2014-12-04 11:58:36 -08:00
strcasestr.c Clean up compatibility definitions. 2005-12-05 15:50:29 -08:00
strlcpy.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
strtoimax.c Add strtoimax() compatibility function. 2011-11-02 13:06:30 -07:00
strtoumax.c Add a compat/strtoumax.c for Solaris 8. 2007-02-19 18:20:30 -08:00
terminal.c mingw: rename WIN32 cpp macro to GIT_WINDOWS_NATIVE 2013-05-08 12:14:35 -07:00
terminal.h add generic terminal prompt function 2011-12-12 16:09:38 -08:00
unsetenv.c Revert "compat/unsetenv.c: Fix a sparse warning" 2013-07-21 15:09:56 -07:00
win32.h mingw: rename WIN32 cpp macro to GIT_WINDOWS_NATIVE 2013-05-08 12:14:35 -07:00
win32mmap.c compat/win32mmap.c: Fix some sparse warnings 2013-04-28 12:27:08 -07:00
winansi.c Win32: reliably detect console pipe handles 2014-06-16 10:56:19 -07:00