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"

Reply via email to