It sounds like an assumption here is that separate threads get separate interpreter instances. I would have thought that a typical multithreaded program would have one interpreter instance and multiple threads (sharing that instance). I would think of separate interpreter instances as the analog of separate independent processes (at the Unix level), and that threads would be something more lightweight than that. There would be _some_ structure which is per-thread, but not logically the whole interpreter.
Been there, done that, got the scars to prove it. Doesn't work well in a system with guarantees of internal consistency and core data elements that are too large for atomic access by the processor. (And, while you can lock things, it gets really, really, *really* slow...)
We need to talk about threads, thread pools, and whatnot, but not until after the holiday, so it'll have to wait until tomorrow.
--
Dan
--------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk