Aplogies if this has already been discussed, but I haven't been following
p6i too closely of late (the lure of being allowed to mess with 5.7.3
has been too strong :-)

Anyway, I presume that the Perl6 theading model will be like Perl 5
ithreads - that is to say, each thread has its own interpreter and private
collection of data, apart from where data is explicity shared. In Perl 5
this involves a high cost for each new thread, since each SV etc must be
individually cloned - expensive in both CPU and memory.

Can we do clever things with the GC and/or COW such that cloning a thread
can either be done (mostly) at the GC level, eg a "special" compacting
cycle that leaves us with 2 identical(ish) compacted copies, or even
better, some sort of COW so that each cloned PMC etc doesn't use any extra
memory until it is modified for the first time ?

Just though I'd raise this in the general conciousness while there are
various GC/threads threads threading about.

I'll now return to my usual activity of feeling guilty for not having
updated PDD7 despite enless promises to that effect.

Dave.

-- 
"Do not dabble in paradox, Edward, it puts you in danger of fortuitous
wit." Lady Croom - Arcadia

Reply via email to