Author: toad
Date: 2008-02-28 22:26:25 +0000 (Thu, 28 Feb 2008)
New Revision: 18234
Modified:
trunk/freenet/src/freenet/client/async/ClientGetter.java
Log:
Run callback at LOW_PRIORITY unless it is IMMEDIATE_SPLITFILE or higher.
Otherwise run at NORM_PRIORITY.
Modified: trunk/freenet/src/freenet/client/async/ClientGetter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientGetter.java 2008-02-28
22:24:09 UTC (rev 18233)
+++ trunk/freenet/src/freenet/client/async/ClientGetter.java 2008-02-28
22:26:25 UTC (rev 18234)
@@ -18,9 +18,12 @@
import freenet.keys.ClientKeyBlock;
import freenet.keys.FreenetURI;
import freenet.keys.Key;
+import freenet.node.PrioRunnable;
+import freenet.node.RequestStarter;
import freenet.support.Logger;
import freenet.support.api.Bucket;
import freenet.support.io.BucketTools;
+import freenet.support.io.NativeThread;
/**
* A high level data request.
@@ -148,10 +151,17 @@
Logger.minor(this, "client.async returned data
in returnBucket");
}
final FetchResult res = result;
- ctx.executor.execute(new Runnable() {
+ ctx.executor.execute(new PrioRunnable() {
public void run() {
clientCallback.onSuccess(res,
ClientGetter.this);
}
+
+ public int getPriority() {
+ if(getPriorityClass() <=
RequestStarter.IMMEDIATE_SPLITFILE_PRIORITY_CLASS)
+ return NativeThread.NORM_PRIORITY;
+ else
+ return NativeThread.LOW_PRIORITY;
+ }
}, "ClientGetter onSuccess callback for "+this);
}