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) {


Reply via email to