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? -- Torsten
