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
