Git 1.9.5
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.)
1 file changed
tree: 867d7ba93d07a8d30736c8c6f6dc7f73ce07d230
  1. block-sha1/
  2. builtin/
  3. compat/
  4. contrib/
  5. Documentation/
  6. git-gui/
  7. gitk-git/
  8. gitweb/
  9. mergetools/
  10. perl/
  11. po/
  12. ppc/
  13. t/
  14. templates/
  15. vcs-svn/
  16. xdiff/
  17. .gitattributes
  18. .gitignore
  19. .mailmap
  20. abspath.c
  21. aclocal.m4
  22. advice.c
  23. advice.h
  24. alias.c
  25. alloc.c
  26. archive-tar.c
  27. archive-zip.c
  28. archive.c
  29. archive.h
  30. argv-array.c
  31. argv-array.h
  32. attr.c
  33. attr.h
  34. base85.c
  35. bisect.c
  36. bisect.h
  37. blob.c
  38. blob.h
  39. branch.c
  40. branch.h
  41. builtin.h
  42. bulk-checkin.c
  43. bulk-checkin.h
  44. bundle.c
  45. bundle.h
  46. cache-tree.c
  47. cache-tree.h
  48. cache.h
  49. check-builtins.sh
  50. check-racy.c
  51. check_bindir
  52. color.c
  53. color.h
  54. column.c
  55. column.h
  56. combine-diff.c
  57. command-list.txt
  58. commit-slab.h
  59. commit.c
  60. commit.h
  61. config.c
  62. config.mak.in
  63. config.mak.uname
  64. configure.ac
  65. connect.c
  66. connect.h
  67. connected.c
  68. connected.h
  69. convert.c
  70. convert.h
  71. copy.c
  72. COPYING
  73. credential-cache--daemon.c
  74. credential-cache.c
  75. credential-store.c
  76. credential.c
  77. credential.h
  78. csum-file.c
  79. csum-file.h
  80. ctype.c
  81. daemon.c
  82. date.c
  83. decorate.c
  84. decorate.h
  85. delta.h
  86. diff-delta.c
  87. diff-lib.c
  88. diff-no-index.c
  89. diff.c
  90. diff.h
  91. diffcore-break.c
  92. diffcore-delta.c
  93. diffcore-order.c
  94. diffcore-pickaxe.c
  95. diffcore-rename.c
  96. diffcore.h
  97. dir.c
  98. dir.h
  99. editor.c
  100. entry.c
  101. environment.c
  102. exec_cmd.c
  103. exec_cmd.h
  104. fast-import.c
  105. fetch-pack.c
  106. fetch-pack.h
  107. fmt-merge-msg.h
  108. fsck.c
  109. fsck.h
  110. generate-cmdlist.sh
  111. gettext.c
  112. gettext.h
  113. git-add--interactive.perl
  114. git-am.sh
  115. git-archimport.perl
  116. git-bisect.sh
  117. git-compat-util.h
  118. git-cvsexportcommit.perl
  119. git-cvsimport.perl
  120. git-cvsserver.perl
  121. git-difftool--helper.sh
  122. git-difftool.perl
  123. git-filter-branch.sh
  124. git-instaweb.sh
  125. git-merge-octopus.sh
  126. git-merge-one-file.sh
  127. git-merge-resolve.sh
  128. git-mergetool--lib.sh
  129. git-mergetool.sh
  130. git-p4.py
  131. git-parse-remote.sh
  132. git-pull.sh
  133. git-quiltimport.sh
  134. git-rebase--am.sh
  135. git-rebase--interactive.sh
  136. git-rebase--merge.sh
  137. git-rebase.sh
  138. git-relink.perl
  139. git-remote-testgit.sh
  140. git-request-pull.sh
  141. git-send-email.perl
  142. git-sh-i18n.sh
  143. git-sh-setup.sh
  144. git-stash.sh
  145. git-submodule.sh
  146. git-svn.perl
  147. GIT-VERSION-GEN
  148. git-web--browse.sh
  149. git.c
  150. git.rc
  151. git.spec.in
  152. gpg-interface.c
  153. gpg-interface.h
  154. graph.c
  155. graph.h
  156. grep.c
  157. grep.h
  158. hash.c
  159. hash.h
  160. hashmap.c
  161. hashmap.h
  162. help.c
  163. help.h
  164. hex.c
  165. http-backend.c
  166. http-fetch.c
  167. http-push.c
  168. http-walker.c
  169. http.c
  170. http.h
  171. ident.c
  172. imap-send.c
  173. INSTALL
  174. kwset.c
  175. kwset.h
  176. levenshtein.c
  177. levenshtein.h
  178. LGPL-2.1
  179. line-log.c
  180. line-log.h
  181. line-range.c
  182. line-range.h
  183. list-objects.c
  184. list-objects.h
  185. ll-merge.c
  186. ll-merge.h
  187. lockfile.c
  188. log-tree.c
  189. log-tree.h
  190. mailmap.c
  191. mailmap.h
  192. Makefile
  193. match-trees.c
  194. merge-blobs.c
  195. merge-blobs.h
  196. merge-recursive.c
  197. merge-recursive.h
  198. merge.c
  199. mergesort.c
  200. mergesort.h
  201. name-hash.c
  202. notes-cache.c
  203. notes-cache.h
  204. notes-merge.c
  205. notes-merge.h
  206. notes-utils.c
  207. notes-utils.h
  208. notes.c
  209. notes.h
  210. object.c
  211. object.h
  212. pack-check.c
  213. pack-revindex.c
  214. pack-revindex.h
  215. pack-write.c
  216. pack.h
  217. pager.c
  218. parse-options-cb.c
  219. parse-options.c
  220. parse-options.h
  221. patch-delta.c
  222. patch-ids.c
  223. patch-ids.h
  224. path.c
  225. pathspec.c
  226. pathspec.h
  227. pkt-line.c
  228. pkt-line.h
  229. preload-index.c
  230. pretty.c
  231. prio-queue.c
  232. prio-queue.h
  233. progress.c
  234. progress.h
  235. prompt.c
  236. prompt.h
  237. quote.c
  238. quote.h
  239. reachable.c
  240. reachable.h
  241. read-cache.c
  242. README
  243. README.md
  244. reflog-walk.c
  245. reflog-walk.h
  246. refs.c
  247. refs.h
  248. remote-curl.c
  249. remote-testsvn.c
  250. remote.c
  251. remote.h
  252. replace_object.c
  253. rerere.c
  254. rerere.h
  255. resolve-undo.c
  256. resolve-undo.h
  257. revision.c
  258. revision.h
  259. run-command.c
  260. run-command.h
  261. send-pack.c
  262. send-pack.h
  263. sequencer.c
  264. sequencer.h
  265. server-info.c
  266. setup.c
  267. sh-i18n--envsubst.c
  268. sha1-array.c
  269. sha1-array.h
  270. sha1-lookup.c
  271. sha1-lookup.h
  272. sha1_file.c
  273. sha1_name.c
  274. shallow.c
  275. shell.c
  276. shortlog.h
  277. show-index.c
  278. sideband.c
  279. sideband.h
  280. sigchain.c
  281. sigchain.h
  282. strbuf.c
  283. strbuf.h
  284. streaming.c
  285. streaming.h
  286. string-list.c
  287. string-list.h
  288. submodule.c
  289. submodule.h
  290. symlinks.c
  291. tag.c
  292. tag.h
  293. tar.h
  294. test-chmtime.c
  295. test-ctype.c
  296. test-date.c
  297. test-delta.c
  298. test-dump-cache-tree.c
  299. test-genrandom.c
  300. test-hashmap.c
  301. test-index-version.c
  302. test-line-buffer.c
  303. test-match-trees.c
  304. test-mergesort.c
  305. test-mktemp.c
  306. test-parse-options.c
  307. test-path-utils.c
  308. test-prio-queue.c
  309. test-read-cache.c
  310. test-regex.c
  311. test-revision-walking.c
  312. test-run-command.c
  313. test-scrap-cache-tree.c
  314. test-sha1.c
  315. test-sha1.sh
  316. test-sigchain.c
  317. test-string-list.c
  318. test-subprocess.c
  319. test-svn-fe.c
  320. test-urlmatch-normalization.c
  321. test-wildmatch.c
  322. thread-utils.c
  323. thread-utils.h
  324. trace.c
  325. transport-helper.c
  326. transport.c
  327. transport.h
  328. tree-diff.c
  329. tree-walk.c
  330. tree-walk.h
  331. tree.c
  332. tree.h
  333. unimplemented.sh
  334. unix-socket.c
  335. unix-socket.h
  336. unpack-trees.c
  337. unpack-trees.h
  338. upload-pack.c
  339. url.c
  340. url.h
  341. urlmatch.c
  342. urlmatch.h
  343. usage.c
  344. userdiff.c
  345. userdiff.h
  346. utf8.c
  347. utf8.h
  348. varint.c
  349. varint.h
  350. version.c
  351. version.h
  352. walker.c
  353. walker.h
  354. wildmatch.c
  355. wildmatch.h
  356. wrap-for-bin.sh
  357. wrapper.c
  358. write_or_die.c
  359. ws.c
  360. wt-status.c
  361. wt-status.h
  362. xdiff-interface.c
  363. xdiff-interface.h
  364. zlib.c
README.md

Git for Windows

This is the source code of Git for Windows, forked from Git.

If you encounter problems, you can report them as GitHub issues, discuss them on Git for Windows' Google Group, and encourage others to work on by tipping via tip for next commit.