Author: toad
Date: 2009-01-23 15:46:05 +0000 (Fri, 23 Jan 2009)
New Revision: 25248
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
branches/db4o/freenet/src/freenet/node/RequestScheduler.java
branches/db4o/freenet/src/freenet/node/RequestStarter.java
Log:
Prevent floods of already-in-starter-queue by taking the starter queue into
account when deciding whether to reject a request.
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2009-01-23 15:28:25 UTC (rev 25247)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2009-01-23 15:46:05 UTC (rev 25248)
@@ -480,12 +480,15 @@
}
}
- public boolean isRunningRequest(SendableRequest request) {
+ public boolean isRunningOrQueuedRequest(SendableRequest request) {
synchronized(starterQueue) {
for(int i=0;i<runningPersistentRequests.size();i++) {
if(runningPersistentRequests.get(i) == request)
return true;
}
+ for(PersistentChosenRequest req : starterQueue) {
+ if(req.request == request) return true;
+ }
}
return false;
}
Modified: branches/db4o/freenet/src/freenet/node/RequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/RequestScheduler.java
2009-01-23 15:28:25 UTC (rev 25247)
+++ branches/db4o/freenet/src/freenet/node/RequestScheduler.java
2009-01-23 15:46:05 UTC (rev 25248)
@@ -69,7 +69,7 @@
public void removeRunningRequest(SendableRequest request);
- public abstract boolean isRunningRequest(SendableRequest request);
+ public abstract boolean isRunningOrQueuedRequest(SendableRequest
request);
public boolean hasFetchingKey(Key key);
Modified: branches/db4o/freenet/src/freenet/node/RequestStarter.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/RequestStarter.java 2009-01-23
15:28:25 UTC (rev 25247)
+++ branches/db4o/freenet/src/freenet/node/RequestStarter.java 2009-01-23
15:46:05 UTC (rev 25248)
@@ -242,7 +242,7 @@
}
public boolean exclude(RandomGrabArrayItem item, ObjectContainer
container, ClientContext context) {
- if(sched.isRunningRequest((SendableRequest)item)) {
+ if(sched.isRunningOrQueuedRequest((SendableRequest)item)) {
Logger.normal(this, "Excluding already-running request:
"+item, new Exception("debug"));
return true;
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs