cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylvain.wal...@anyware-tech.com>
Subject Re: Why is FlowInterpreter SingleThreaded?
Date Mon, 20 Oct 2003 16:42:51 GMT
Torsten Curdt wrote:

>> After looking carefully, the interpreter must be SingleThreaded, even 
>> if thread safe...
>>
>> This is because although an intepreter can handle concurrent 
>> requests, each sitemap must have a different instance, since the 
>> interpreter holds the scripts defined in a <map:flow> statement.
>>
>> So if the interpreter is made ThreadSafe, a unique instance will 
>> exist for the whole system, and will mix all script definitions and 
>> script global variables. Making it SingleThreaded ensures each 
>> sitemap will have its own instance. It seems hacky, but I don't see 
>> what other means we have to achieve this...
>
>
> without looking at the code: couldn't we pass the script definition on 
> each call? 


This means that the interpreter must "externalize" its state (compiled 
scripts and global scope) in an object stored in the treeprocessor for a 
sitemap (in the FlowNode).

Or another solution is to change Interpreter into InterpreterFactory: 
the state mentioned above would then be the interpreter itself.

Sylvain

-- 
Sylvain Wallez                                  Anyware Technologies
http://www.apache.org/~sylvain           http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
Orixo, the opensource XML business alliance  -  http://www.orixo.com



Mime
View raw message