После просмотра экрана Pragmatic Studio на Erlang последнее видео на Supervisors упомянуло, что для того, чтобы супервизор получил уведомление об одном из своих дочерних элементов, чтобы он мог правильно перезапустить его, ребенок должен зарегистрироваться в process_flag(trap_exit, true)
. Возможно, я просто неправильно понял автора (и возможности ОЧЕНЬ высоки, что я неправильно понял), но я думал, что руководители автоматически узнают, когда их дети умирают (возможно, через spawn_link или что-то подобное в фоновом режиме). Это действительно необходимо? Когда нужно использовать process_flag (trap_exit, true) в реальном мире, потому что в документации явно указано следующее:
http://www.erlang.org/doc/man/erlang.html#process_flag-2
process_flag (trap_exit, Boolean)
Если для параметра trap_exit установлено значение true, сигналы выхода, поступающие в процесс, преобразуются в сообщения {'EXIT', From, Reason}, которые могут приниматься как обычные сообщения. Если для параметра trap_exit установлено значение false, процесс завершается, если он принимает выходной сигнал, отличный от нормального, и сигнал выхода распространяется на связанные процессы. Обычно процессы приложений не прерывают выходы. ``