-
Notifications
You must be signed in to change notification settings - Fork 316
Conversation
For additional background, see http://lists.gnu.org/archive/html/bug-gnulib/2014-09/msg00045.html. Please note the updated patch later in the thread (http://lists.gnu.org/archive/html/bug-gnulib/2014-09/msg00070.html) which is what was cherry-picked here. |
MSysGit - the development behind Git for Windows » git #277 SUCCESS |
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.)
poll: honor the timeout on Win32
Thank you so much! Do you want a new |
Nope! I'm in no hurry, I'm happy to use a locally patched build. Thanks! :) |
Okay, then I'll forward port this patch to the upcoming MSys2-based Git for Windows. |
This was originally 'pull request msysgit#330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
MSysGit - the development behind Git for Windows » git #278 SUCCESS |
Good catch! |
MSysGit - the development behind Git for Windows » git #279 SUCCESS |
@t-b yes, it is safe to pick. Thank you! |
@dscho Thanks. I"ve picked it. |
This was originally 'pull request msysgit#330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request msysgit#330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request #330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request msysgit#330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request #330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request msysgit#330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request msysgit#330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request msysgit#330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request #330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request msysgit#330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request msysgit#330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request msysgit#330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request msysgit#330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was originally 'pull request msysgit#330 from ethomson/poll_inftim' in msysgit/git. poll: honor the timeout on Win32 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
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 monotonicallyincreasing. (Neither
GetSystemTime
norQueryPerformanceCounter
haveall three of these properties.)