Author: toad
Date: 2008-07-30 12:41:23 +0000 (Wed, 30 Jul 2008)
New Revision: 21500
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
Log:
If NORM_PRIORITY queue is full, and the request starter queue isn't, then don't
run RegisterMe, reschedule it at NORM-1.
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
===================================================================
---
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
2008-07-29 23:16:32 UTC (rev 21499)
+++
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
2008-07-30 12:41:23 UTC (rev 21500)
@@ -578,6 +578,13 @@
class RegisterMeRunner implements DBJob {
public void run(ObjectContainer container, ClientContext
context) {
+
if(sched.databaseExecutor.getQueueSize(NativeThread.NORM_PRIORITY) > 100) {
+ // If the queue isn't empty, reschedule at
NORM-1
+ if(!sched.isQueueAlmostEmpty()) {
+
context.jobRunner.queue(registerMeRunner, NativeThread.NORM_PRIORITY-1, false);
+ return;
+ }
+ }
long deadline = System.currentTimeMillis() + 10*1000;
if(registerMeSet == null) {
Logger.error(this, "registerMeSet is null for
"+ClientRequestSchedulerCore.this+" ( "+this+" )");