|
|
|
|
|
by chrisseaton
1914 days ago
|
|
> And I don't think erlang has a shared mutable states An actor has state. It's mutable - each message can modify it. It's shared - two process working with a shared actor share that state. To me, that's shared mutable state. It causes classic race conditions. (I know this is an unpopular opinion, and somewhat deliberately contrary and provocative, but ultimately truthful.) |
|
Also note that erlang is not a pure actor system. It is relatively hard to accidentally write a deadlock in erlang with OTP. In about 3 years of programming elixir I've only written a deadlock three or four times (and caught them all in tests). Even so if I had pushed it to prod, it would have timed out certain operations that would have triggered dynamic restart of the relevant processes.