summaryrefslogtreecommitdiff
path: root/methods
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2016-07-27 13:25:18 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2016-07-27 13:25:18 +0200
commit353b7bab08704cd2f7e2b6951c9dcd7cf3023e3a (patch)
tree29f5fca8d23f0bccd21cc8ad4319ce5dc3f976f0 /methods
parentb9c20219dc17db1d29eaf297263a4b008bd1b90b (diff)
http: skip requesting if pipeline is full
The rewrite in 742f67eaede80d2f9b3631d8697ebd63b8f95427 is based on the assumption that the pipeline will always be at least one item short each time it is called, but the logs in #832113 suggest that this isn't always the case. I fail to see how at the moment, but the old implementation had this behavior, so restoring it can't really hurt, can it?
Diffstat (limited to 'methods')
-rw-r--r--methods/server.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/methods/server.cc b/methods/server.cc
index 461143388..6d147fe12 100644
--- a/methods/server.cc
+++ b/methods/server.cc
@@ -427,6 +427,8 @@ bool ServerMethod::Fetch(FetchItem *)
decltype(PipelineDepth) CurrentDepth = 0;
for (FetchItem const *I = Queue; I != QueueBack; I = I->Next)
++CurrentDepth;
+ if (CurrentDepth > AllowedDepth)
+ return true;
do {
// Make sure we stick with the same server