On Tuesday, June 9, 2015, Taylor R Campbell <campb...@mumble.net> wrote:


> There is an implementation of Concurrent ML for MIT Scheme and others
> at
>
> http://mumble.net/~campbell/darcs/scheme-cml
>
> which includes multiplexed waits on synchronous channels.  If any of
> you are interested in using it, feel free to ask me questions -- or if
> you'd like to pick it up and extend it, perhaps along the lines of the
> TODO at <http://mumble.net/~campbell/tmp/TODO.scheme-cml>.
>

I remember talking with you about this long ago.  Very cool!  I've put it
on my list to study.


> But simply throwing out objects called `mutexes' does not absolve you
> of the need to design the conservation laws that mutexes represent in
> a complex program.
>
> If you adopt the Erlang dogma of storing all state `immutably' in
> separate processes, then each process's state has conservation laws
> implied by the behaviour of that process.  If you want conservation
> laws that apply to the state of two processes in aggregate, you likely
> need to have an arbiter process to enforce them -- and in so doing,
> you've just created three locks and a lock order between them.
>

I like the Erlang model very much.  If threads are cheap enough, they're
almost always preferable to locks.  But there are always some
high-performance cases where raw locks are necessary, I suppose.
_______________________________________________
MIT-Scheme-devel mailing list
MIT-Scheme-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/mit-scheme-devel

Reply via email to