fix: deadlock in supervisor signal handler
Only a few functions are allowed in signal handlers (see man 7 signal-safety
). Both println!()
and std::process::exit()
are not
acceptable. In our case std::process::exit()
resulted in a dead lock
when called concurrently.
This patch fixes it, and also enhances some other aspects of the supervisor.
See also: https://stackoverflow.com/questions/44865737/println-panics-when-called-concurrently
Closes #156 (closed)