On Thu, Jan 01, 2004 at 11:21:57AM -0800, Jeff Clites wrote:
> As far as what level needs to implement them, I'd say that parrot has
> to do enough to make it possible for an HLL to expose ithreads-style
> threading. Due to the cross-language nature of parrot, practically
> speaking this probably means that the semantic needs to exist at the
> parrot level. (For instance, an ithread created in Perl code could load
> a parrot bytecode library implemented in Python; calling into code
> inside this library shouldn't allow access to "unshared" data from
> other ithreads.)
The other big thing about ithreads is that the 'not shared by default'
model implies that each time a new thread is created by a request from the
HLL, the whole current interpreter state must be copied (or some COW
scheme interposed0) so that when the new thread makes changes to a
pre-existing variable, that change isn't seen by any of the ancestor
threads. That implies some support from parrot.
--
O Unicef Clearasil!
Gibberish and Drivel!
- "Bored of the Rings"