RE: Reusing XT instances

Subject: RE: Reusing XT instances
From: Kay Michael <Michael.Kay@xxxxxxx>
Date: Mon, 31 Jan 2000 17:12:10 -0000
> This much, I could take care of by locking the processor to 
> ensure sequential access.

It's generally much better to create two instances than to create one
instance and lock it. You should only synchronize on a single object where
the state of the object actually needs to be shared between clients.
> 
> SAX says that a parser is reusable but not reentrant. To me, 
> this means that a SAX parser is not thread-safe, so in any 
> multi-threaded environment, you'd have to lock the parser.

With SAX it's not just multi-threading that's an issue, but multiple
activations within a thread. Specifically, you're not allowed to call
parse() from within a call-back. Again, it's crazy to lock the parser, much
better to create a new instance for each parse.
> 
> It's an interesting point that you brought up, however. It 
> could be worthwile to cache the Sheet. It'd make for a lot of rigamarole,
but it might be
> worth considering.
> 
If you take a look at how Saxon does it in SaxonServlet, you'll see that
it's not a lot of rigmarole at all, it's a dozen lines of code.

Mike Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread