David Hopwood wrote:
> [...] It does not matter whether the
> variables are single-assignment or fully mutable (since we only set them
> to a value structurally equal to their current value).

Except that in a shared state concurrency model with interleaving semantics,
reading a variable and then setting it to the same (or a structurally equal)
value can't necessarily be treated as a no-op, since it might clobber a
concurrent write. So you would have to guarantee no preemption between the
read and the write in the case of fully mutable variables. (That might sound
complicated, but in some language implementations you would get it for free
because primitives cannot be preempted.)

This wrinkle would not apply to languages with strict message passing
concurrency models (since in that case only the process to which a variable
is local can read or set it), or sequential languages.

-- 
David Hopwood <[EMAIL PROTECTED]>


_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to