4 ms·
Short version: In the sense that most people mean deadlock to mean multiple threads waiting for obtain a lock or otherwise having messed up locking and not bei
by spooneybarger 7y ago
Short version:
In the sense that most people mean deadlock to mean multiple threads waiting for obtain a lock or otherwise having messed up locking and not being able to make progress, I think that is covered.
There's no concept of waiting for a thing and doing nothing else in Pony. And example would be "selective receive" in Erlang where you can match for a message of a certain type arriving.
In Pony, you give up selective receive. Every message has to be processed, in order, that an actor receives them. This forces a change in programming model and thinking to one that is purely asynchronous message passing.
It can take some getting used to. Lots of patterns that work in other languages don't in Pony because the pattern requires waiting or other synchronous coordination that isn't possible in Pony (unless you use C code via FFI then all bets are off).