Summary: There were two problems: (1) `Signal.Expert.handle` does not call exit by itself; (2) it calls `flush` inside, which introduced deadlock, result in zombie processes. This diff changes overall processes of the signal handler. 1. It uses `Caml.Sys.set_signal` instead of `Signal.Expert.handle`. 2. Inside the signal handler it raises an exception, then which is catched in `uncaught_exception_handler` of `Config.ml`. Epilogues are executed there. Reviewed By: jvillard Differential Revision: D21769246 fbshipit-source-id: cecd998c6master
parent
1d2f00faea
commit
7e902f241d
Loading…
Reference in new issue