r26655 - trunk/freenet/src/freenet/client/async

[email protected]
Newsgroups gmane.network.freenet.cvs
Message-ID <[email protected]>
Author: toad
Date: 2009-04-08 16:10:40 +0000 (Wed, 08 Apr 2009)
New Revision: 26655

Modified:
   trunk/freenet/src/freenet/client/async/USKChecker.java
   trunk/freenet/src/freenet/client/async/USKFetcher.java
Log:
Use the polling priorities from USKs. This does boost the effective priority of ARK fetches to 2, so theoretically it might exacerbate problems with USK requests flooding ... but FMS fetches at prio 2 anyway...


Modified: trunk/freenet/src/freenet/client/async/USKChecker.java
===================================================================
--- trunk/freenet/src/freenet/client/async/USKChecker.java	2009-04-08 15:09:21 UTC (rev 26654)
+++ trunk/freenet/src/freenet/client/async/USKChecker.java	2009-04-08 16:10:40 UTC (rev 26655)
@@ -97,5 +97,10 @@
 	public void onFailed(KeyListenerConstructionException e, ObjectContainer container, ClientContext context) {
 		onFailure(new LowLevelGetException(LowLevelGetException.INTERNAL_ERROR, "IMPOSSIBLE: Failed to create Bloom filters (we don't have any!)", e), null, container, context);
 	}
+	
+	@Override
+	public short getPriorityClass(ObjectContainer container) {
+		return cb.getPriority();
+	}
 
 }

Modified: trunk/freenet/src/freenet/client/async/USKFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/USKFetcher.java	2009-04-08 15:09:21 UTC (rev 26654)
+++ trunk/freenet/src/freenet/client/async/USKFetcher.java	2009-04-08 16:10:40 UTC (rev 26655)
@@ -66,6 +66,7 @@
  */
 public class USKFetcher implements ClientGetState {
     private static volatile boolean logMINOR;
+    private static volatile boolean logDEBUG;
 
     static {
         Logger.registerLogThresholdCallback(new LogThresholdCallback() {
@@ -73,6 +74,7 @@
             @Override
             public void shouldUpdate() {
                 logMINOR = Logger.shouldLog(Logger.MINOR, this);
+                logDEBUG = Logger.shouldLog(Logger.DEBUG, this);
             }
         });
     }
@@ -570,12 +572,17 @@
 		for(int i=0;i<localCallbacks.length;i++) {
 			USKCallback cb = localCallbacks[i];
 			short prio = cb.getPollingPriorityNormal();
+			if(logDEBUG) Logger.debug(this, "Normal priority for "+cb+" : "+prio);
 			if(prio < normalPrio) normalPrio = prio;
+			if(logDEBUG) Logger.debug(this, "Progress priority for "+cb+" : "+prio);
 			prio = cb.getPollingPriorityProgress();
 			if(prio < progressPrio) progressPrio = prio;
 		}
-		normalPollPriority = normalPrio;
-		progressPollPriority = progressPrio;
+		if(logMINOR) Logger.minor(this, "Updating priorities: normal="+normalPrio+" progress="+progressPrio+" for "+this+" for "+origUSK);
+		synchronized(this) {
+			normalPollPriority = normalPrio;
+			progressPollPriority = progressPrio;
+		}
 	}
 
 	public synchronized boolean hasSubscribers() {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.