Hacker News new | ask | show | jobs
by blattimwind 2306 days ago
Erlang's use of m:n threading is orthogonal to fault-tolerance (perhaps not inside the implementation, but conceptually).
2 comments

If an Erlang process crash cannot crash the entire system while Bastion's concept of a process can then threading is important part of fault-tolerance, isn't it?
It definitely is not orthogonal. Suppose an OS thread goes into an infinite loop. How do you cleanly stop it (feel free to assume Linux/Windows/MacOS)?. In Erlang this is possible because of the custom threading implementation.
In Erlang that's possible because the program runs in a VM. Erlang could do the same with 1:1 and m:1 threading.
It's because of the vm interpreter that calls into the scheduler within loop iterations. Nothing to do with threads.
> How do you cleanly stop it

The JVM manages this - there are many options:

- reading a flag - patching the running - changing memory protection and causing a segfault

> Suppose an OS thread goes into an infinite loop. How do you cleanly stop it (feel free to assume Linux/Windows/MacOS)?

ptrace it?