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
