Skip to content

fix: deadlock in supervisor signal handler

Yaroslav Dynnikov requested to merge 156-supervisor-hang into master

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)

Merge request reports