Author: toad
Date: 2008-07-04 13:40:45 +0000 (Fri, 04 Jul 2008)
New Revision: 20982
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
Log:
Only queue one copy of the moveKeysFromCooldownQueue job at a time.
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-07-04 13:38:27 UTC (rev 20981)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-07-04 13:40:45 UTC (rev 20982)
@@ -771,16 +771,18 @@
return transientCooldownQueue.add(key.getNodeKey(),
getter, null);
}
+ private final DBJob moveFromCooldownJob = new DBJob() {
+
+ public void run(ObjectContainer container, ClientContext
context) {
+ if(moveKeysFromCooldownQueue(persistentCooldownQueue,
true, selectorContainer))
+ starter.wakeUp();
+ }
+
+ };
+
public void moveKeysFromCooldownQueue() {
moveKeysFromCooldownQueue(transientCooldownQueue, false, null);
- jobRunner.queue(new DBJob() {
-
- public void run(ObjectContainer container,
ClientContext context) {
-
if(moveKeysFromCooldownQueue(persistentCooldownQueue, true, selectorContainer))
- starter.wakeUp();
- }
-
- }, NativeThread.NORM_PRIORITY, false);
+ jobRunner.queue(moveFromCooldownJob,
NativeThread.NORM_PRIORITY, true);
}
private boolean moveKeysFromCooldownQueue(CooldownQueue queue, boolean
persistent, ObjectContainer container) {