> i don't expect it would be hard to write an Erlang program with 2
> actors that would deadlock. as far as i know, people use timeouts on
> message handling to sweep it under the carpet.
>
> e.g. (just a quick google search turns this up)
> http://mue.tideland.biz/avoiding-erlang-deadlocks

So yes, with a synchronous send+receive you can easily deadlock. The
bounded mailboxes was under the assumption of asynchronous sends, but
I suppose another way to put it is that such asynchronous sends
effectively turn synchronous (or potentially synchronous) again once
you limit mailbox size.

I think the interesting generalization is that regardless of your
underlying primitives, you will always be able to create a system
which has some potential for deadlocks and/or race conditions. Just
because your low-level primitives "guarantee" that you don't, does not
mean that you cannot use them to build something on top that *is*
susceptible to deadlock/races.

-- 
/ Peter Schuller

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to