Author: toad
Date: 2007-03-21 23:10:38 +0000 (Wed, 21 Mar 2007)
New Revision: 12262

Modified:
   trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
Log:
Use weak references

Modified: trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2007-03-21 23:08:19 UTC (rev 12261)
+++ trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2007-03-21 23:10:38 UTC (rev 12262)
@@ -3,6 +3,7 @@
  * http://www.gnu.org/ for further details of the GPL. */
 package freenet.client.async;

+import java.lang.ref.WeakReference;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedList;
@@ -81,7 +82,7 @@
        private final RequestStarter starter;
        private final Node node;
        public final String name;
-       private final LinkedList /* <RandomGrabArray> */ recentSuccesses = new 
LinkedList();
+       private final LinkedList /* <WeakReference <RandomGrabArray> > */ 
recentSuccesses = new LinkedList();

        public static final String PRIORITY_NONE = "NONE";
        public static final String PRIORITY_SOFT = "SOFT";
@@ -334,7 +335,8 @@
                                synchronized(this) {
                                        if(!recentSuccesses.isEmpty()) {
                                                if(random.nextBoolean()) {
-                                                       altRGA = 
(RandomGrabArray) recentSuccesses.removeLast();
+                                                       WeakReference ref = 
(WeakReference) (recentSuccesses.removeLast());
+                                                       altRGA = 
(RandomGrabArray) ref.get();
                                                }
                                        }
                                }
@@ -400,7 +402,7 @@

        public void succeeded(RandomGrabArray parentGrabArray) {
                synchronized(this) {
-                       recentSuccesses.addFirst(parentGrabArray);
+                       recentSuccesses.addFirst(new 
WeakReference(parentGrabArray));
                        while(recentSuccesses.size() > 8)
                                recentSuccesses.removeLast();
                }


Reply via email to