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);

        }


Reply via email to