Author: toad
Date: 2008-08-15 16:38:11 +0000 (Fri, 15 Aug 2008)
New Revision: 21910
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
Log:
Don't add to the starterQueue if we're only going to take it back off it.
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-08-15 15:30:10 UTC (rev 21909)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-08-15 16:38:11 UTC (rev 21910)
@@ -718,13 +718,19 @@
int retryCount = req.getRetryCount();
synchronized(starterQueue) {
boolean allBetter = true;
+ boolean betterThanSome = false;
+ int size = 0;
for(PersistentChosenRequest old : starterQueue) {
+ size += old.sizeNotStarted();
if(old.prio < prio)
allBetter = false;
else if(old.prio == prio && old.retryCount <=
retryCount)
allBetter = false;
+ if(old.prio > prio || old.prio == prio &&
old.prio > retryCount)
+ betterThanSome = true;
}
if(allBetter && !starterQueue.isEmpty()) return;
+ if(size >= MAX_STARTER_QUEUE_SIZE && !betterThanSome)
return;
}
addToStarterQueue(req, container);
trimStarterQueue(container);