Daniel Cheng wrote:
> On Wed, Feb 4, 2009 at 12:45 AM, <nextgens at freenetproject.org> wrote:
>> Author: nextgens
>> Date: 2009-02-03 16:45:44 +0000 (Tue, 03 Feb 2009)
>> New Revision: 25492
>>
>> Modified:
>> trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
>> Log:
>> Use the executor and not the ticker there
>>
>> Modified: trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
>> ===================================================================
>> --- trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
>> 2009-02-03 16:24:45 UTC (rev 25491)
>> +++ trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
>> 2009-02-03 16:45:44 UTC (rev 25492)
>> @@ -662,18 +662,18 @@
>> Runnable r = new Runnable() {
>> public void run() {
>> if(logMINOR) Logger.minor(this, "Running
>> "+gets.length+" callbacks off-thread for "+block.getKey());
>> - for(int i=0;i<gets.length;i++) {
>> + for(SendableGet get : gets) {
>> try {
>> - if(logMINOR)
>> Logger.minor(this, "Calling callback for "+gets[i]+" for "+key);
>> - gets[i].onGotKey(key, block,
>> ClientRequestScheduler.this);
>> + if(logMINOR)
>> Logger.minor(this, "Calling callback for "+get+" for "+key);
>> + get.onGotKey(key, block,
>> ClientRequestScheduler.this);
>> } catch (Throwable t) {
>> - Logger.error(this, "Caught
>> "+t+" running callback "+gets[i]+" for "+key, t);
>> + Logger.error(this, "Caught
>> "+t+" running callback "+get+" for "+key, t);
>> }
>> }
>> if(logMINOR) Logger.minor(this, "Finished
>> running callbacks");
>> }
>> };
>> - node.getTicker().queueTimedJob(r, 0); // FIXME ideally these
>> would be completed on a single thread; when we have 1.5, use a dedicated
>> non-parallel Executor
>> + node.executor.execute(r, "Callbacks for "+name);
>
> The FIXME still applies: node.executor spawn a new thread for every
> request. the original comment call for a "non-parallel" executor.
There is a patch in the pipes to make it happen; There is no reason why
not to use Executor anymore... All we need is a NativeThread factory.