> 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