Author: toad
Date: 2008-05-21 12:22:36 +0000 (Wed, 21 May 2008)
New Revision: 20009
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
Log:
Go to the correct scheduler class. Pass in the transient scheduler to the core
scheduler.removeFirst().
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-05-21 12:18:32 UTC (rev 20008)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-05-21 12:22:36 UTC (rev 20009)
@@ -194,7 +194,10 @@
}
}
}
- schedCore.innerRegister(req, random);
+ if(req.persistent())
+ schedCore.innerRegister(req, random);
+ else
+ schedTransient.innerRegister(req, random);
starter.wakeUp();
}
@@ -213,7 +216,8 @@
else if(PRIORITY_HARD.equals(choosenPriorityScheduler))
fuzz = 0;
}
- return schedCore.removeFirst(fuzz, random, offeredKeys,
starter);
+ // schedCore juggles both
+ return schedCore.removeFirst(fuzz, random, offeredKeys,
starter, schedTransient);
}
public void removePendingKey(SendableGet getter, boolean complain, Key
key) {
@@ -249,8 +253,11 @@
}
public void reregisterAll(ClientRequester request) {
- schedCore.reregisterAll(request, random);
- starter.wakeUp();
+// if(request.persistent())
+ schedCore.reregisterAll(request, random);
+// else
+// schedTransient.reregisterAll(request, random);
+// starter.wakeUp();
}
public String getChoosenPriorityScheduler() {
@@ -258,7 +265,10 @@
}
public void succeeded(BaseSendableGet succeeded) {
- schedCore.succeeded(succeeded);
+// if(succeeded.persistent())
+ schedCore.succeeded(succeeded);
+// else
+// schedTransient.succeeded(succeeded);
}
public void tripPendingKey(final KeyBlock block) {
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
===================================================================
---
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
2008-05-21 12:18:32 UTC (rev 20008)
+++
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
2008-05-21 12:22:36 UTC (rev 20009)
@@ -113,7 +113,7 @@
// We prevent a number of race conditions (e.g. adding a retry count
and then another
// thread removes it cos its empty) ... and in addToGrabArray etc we
already sync on this.
// The worry is ... is there any nested locking outside of the
hierarchy?
- synchronized SendableRequest removeFirst(int fuzz, RandomSource random,
OfferedKeysList[] offeredKeys, RequestStarter starter) {
+ synchronized SendableRequest removeFirst(int fuzz, RandomSource random,
OfferedKeysList[] offeredKeys, RequestStarter starter,
ClientRequestSchedulerNonPersistent schedTransient) {
// Priorities start at 0
if(logMINOR) Logger.minor(this, "removeFirst()");
boolean tryOfferedKeys = offeredKeys != null &&
random.nextBoolean();