Author: toad
Date: 2008-06-24 00:32:17 +0000 (Tue, 24 Jun 2008)
New Revision: 20632

Modified:
   branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
Log:
Don't call onSuccess on the database thread if we don't need to

Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-06-24 00:13:49 UTC (rev 20631)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-06-24 00:32:17 UTC (rev 20632)
@@ -292,13 +292,17 @@
                                        final ClientKeyBlock b = block;
                                        final Object t = tok;
                                        final SendableGet g = getter;
-                                       jobRunner.queue(new DBJob() {
-
-                                               public void run(ObjectContainer 
container, ClientContext context) {
-                                                       g.onSuccess(b, true, t, 
ClientRequestScheduler.this, container, context);
-                                               }
-                                               
-                                       }, NativeThread.NORM_PRIORITY, false);
+                                       if(persistent) {
+                                               jobRunner.queue(new DBJob() {
+                                                       
+                                                       public void 
run(ObjectContainer container, ClientContext context) {
+                                                               g.onSuccess(b, 
true, t, ClientRequestScheduler.this, container, context);
+                                                       }
+                                                       
+                                               }, NativeThread.NORM_PRIORITY, 
false);
+                                       } else {
+                                               g.onSuccess(b, true, t, 
ClientRequestScheduler.this, null, clientContext);
+                                       }
                                }
                                // Even with working thread priorities, we 
still get very high latency accessing
                                // the datastore when background threads are 
doing it in parallel.


Reply via email to