Author: toad
Date: 2008-06-27 10:19:13 +0000 (Fri, 27 Jun 2008)
New Revision: 20809

Modified:
   branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
Log:
Activation for cooldown queue

Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-06-27 00:16:46 UTC (rev 20808)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-06-27 10:19:13 UTC (rev 20809)
@@ -667,18 +667,18 @@
        }

        public void moveKeysFromCooldownQueue() {
-               moveKeysFromCooldownQueue(transientCooldownQueue, null);
+               moveKeysFromCooldownQueue(transientCooldownQueue, false, null);
                jobRunner.queue(new DBJob() {

                        public void run(ObjectContainer container, 
ClientContext context) {
-                               
if(moveKeysFromCooldownQueue(persistentCooldownQueue, selectorContainer))
+                               
if(moveKeysFromCooldownQueue(persistentCooldownQueue, true, selectorContainer))
                                        starter.wakeUp();
                        }

                }, NativeThread.NORM_PRIORITY, false);
        }

-       private boolean moveKeysFromCooldownQueue(CooldownQueue queue, 
ObjectContainer container) {
+       private boolean moveKeysFromCooldownQueue(CooldownQueue queue, boolean 
persistent, ObjectContainer container) {
                if(queue == null) return false;
                long now = System.currentTimeMillis();
                final int MAX_KEYS = 1024;
@@ -689,6 +689,8 @@
                found = true;
                for(int j=0;j<keys.length;j++) {
                        Key key = keys[j];
+                       if(persistent)
+                               container.activate(key, 5);
                        if(logMINOR) Logger.minor(this, "Restoring key: "+key);
                        SendableGet[] gets = 
schedCore.getClientsForPendingKey(key);
                        SendableGet[] transientGets = 
schedTransient.getClientsForPendingKey(key);
@@ -698,8 +700,11 @@
                                continue;
                        } else {
                                if(gets != null)
-                               for(int i=0;i<gets.length;i++)
+                               for(int i=0;i<gets.length;i++) {
+                                       if(persistent)
+                                               container.activate(gets[i], 1);
                                        gets[i].requeueAfterCooldown(key, now, 
container, clientContext);
+                               }
                                if(transientGets != null)
                                for(int i=0;i<transientGets.length;i++)
                                        
transientGets[i].requeueAfterCooldown(key, now, container, clientContext);


Reply via email to