aboutsummaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-03-29 14:09:08 -0700
committerJunio C Hamano <gitster@pobox.com>2011-03-29 14:09:08 -0700
commit96220d837c4f58a6be447127b727b8a55246d231 (patch)
tree84629c70ffa3fef1718c415a2304748436dc1934 /builtin
parent2eee1393f39953d27b63070fdb5c533082f28f0c (diff)
parent44d8dc54e73e8010c4bdf57a422fc8d5ce709029 (diff)
downloadgit-96220d837c4f58a6be447127b727b8a55246d231.tar.gz
git-96220d837c4f58a6be447127b727b8a55246d231.tar.xz
Merge branch 'jc/fetch-progressive-stride'
* jc/fetch-progressive-stride: Fix potential local deadlock during fetch-pack
Diffstat (limited to 'builtin')
-rw-r--r--builtin/fetch-pack.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c
index 65a872745..85aff029b 100644
--- a/builtin/fetch-pack.c
+++ b/builtin/fetch-pack.c
@@ -230,16 +230,17 @@ static void insert_alternate_refs(void)
}
#define INITIAL_FLUSH 16
+#define PIPESAFE_FLUSH 32
#define LARGE_FLUSH 1024
static int next_flush(int count)
{
- if (count < INITIAL_FLUSH * 2)
- count += INITIAL_FLUSH;
- else if (count < LARGE_FLUSH)
+ int flush_limit = args.stateless_rpc ? LARGE_FLUSH : PIPESAFE_FLUSH;
+
+ if (count < flush_limit)
count <<= 1;
else
- count += LARGE_FLUSH;
+ count += flush_limit;
return count;
}