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