In the "shared everything" model, code that touches shared PMCs needs to be cloned into the offending thread.
Ask yourself why?
Firstly, what I wrote was pure speculation because I had no context at all.

I'll play devil's advocate once more.

Why does anything need to be cloned. There is only one reason. Fork emulation.
I can think of at least two reasons: In reality I just don't know exactly how they're planning to support whats written in the PDD. In a perfectly ideal "shared everything" model nothing needs to be cloned... but what I got from reading the PDD is that you still need to protect certain structures to keep the Task PMCs and scheduler info consistent and free from corruption in the event that a thread dies.

There is only one reason. Fork emulation ... But if you have a real fork, you don't need to do that.
It does indeed look like they plan to provide some sort of fork()-like facility to platforms without it. I don't read anything else into it than that.

Fork emulation just doesn't work, and perpectuating it serves no good purpose.
Parrot has to run on multiple platforms, if you're going to provide the unix fork() via HLL APIs at all, you need to provide something similar to all platforms. Certainly, there will be costs associated with that on particular platforms.

In any case, for an HLL you can use threads directly instead. perl5 specifically exposed unix fork() semantics, perl6 doesn't have to expose fork(). In that scenario I imagine it'll still be available by importing a module that knows how to do it using parrot APIs.

-David

Update: fixed a couple of typos.


In reply to Re^5: Slow evolution of Perl = Perl is a closed Word (NQP, parrot concurrency == Oh dear.) by erroneousBollock
in thread Slow evolution of Perl = Perl is a closed Word by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.