I've been talking to Chandon a lot about his GSoC project, and one
problem that he's going to start running into is the issue of sharing
pointers (specifically PMCs) across threads, and the mechanisms
necessary to lock and protect them. Unfortunately, implementing a
whole system of synchronization or locking primitives is probably
outside the scope of his GSoC project, so we can't rely on something
like that being designed and implemented by the end of his project
work in August.

My question to the larger parrot community is this: Assuming that in a
month we have a more-or-less working and usable threading
implementation in Parrot, how do we want to handle sharing of data?

Do we want a global interpreter lock, like Python uses? A new
implementation of STM? COW clones for shared PMCs? A library of
locking primitives (probably with some version of a limited GIL to
protect interpreter-global data)?

Or, do we want to maybe start planning for a new architecture entirely
and use a message-passing system like erlang? This could be
interesting, but does nothing to make threading usable in parrot in
the next few months.

I'm not going to be at #ps today, but I would be very interested to
hear feedback about this issue in any case.

--Andrew Whitworth
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to