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.