Author: toad
Date: 2008-05-31 14:55:27 +0000 (Sat, 31 May 2008)
New Revision: 20162
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
Log:
databaseExecutor jobs should commit
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-05-31 14:42:05 UTC (rev 20161)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-05-31 14:55:27 UTC (rev 20162)
@@ -293,15 +293,17 @@
public void run() {
ChosenRequest req = null;
while(true) {
+ req = removeFirst();
+ boolean finished = false;
synchronized(starterQueue) {
if(req != null) {
starterQueue.add(req);
req = null;
}
- if(starterQueue.size() >=
MAX_STARTER_QUEUE_SIZE) return;
+ if(starterQueue.size() >=
MAX_STARTER_QUEUE_SIZE) finished = true;
}
- req = removeFirst();
- if(req == null) return;
+ selectorContainer.commit();
+ if(req == null || finished) return;
}
}
};
@@ -322,6 +324,7 @@
schedCore.removePendingKey(getter, complain, key);
if(persistentCooldownQueue !=
null)
persistentCooldownQueue.removeKey(key, getter,
getter.getCooldownWakeupByKey(key), selectorContainer);
+ selectorContainer.commit();
} catch (Throwable t) {
Logger.error(this, "Caught "+t,
t);
}
@@ -358,6 +361,7 @@
public void run() {
try {
schedCore.reregisterAll(request, random, ClientRequestScheduler.this);
+ selectorContainer.commit();
starter.wakeUp();
} catch (Throwable t) {
Logger.error(this, "Caught "+t,
t);
@@ -380,6 +384,7 @@
public void run() {
try {
schedCore.succeeded(succeeded);
+ selectorContainer.commit();
} catch (Throwable t) {
Logger.error(this, "Caught "+t,
t);
}
@@ -442,6 +447,7 @@
}
}
if(logMINOR) Logger.minor(this, "Finished
running callbacks");
+ selectorContainer.commit();
}
}, "tripPendingKey for "+block.getKey());
@@ -471,6 +477,7 @@
if(priority >= oldPrio) return; // already on
list at >= priority
offeredKeys[priority].queueKey(key);
starter.wakeUp();
+ // No need to commit
}
}, "maybeQueueOfferedKey");
}
@@ -498,6 +505,7 @@
try {
if(moveKeysFromCooldownQueue(persistentCooldownQueue, selectorContainer))
starter.wakeUp();
+ selectorContainer.commit();
} catch (Throwable t) {
Logger.error(this, "Caught "+t, t);
}