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.