在erlang进程里加了 process_flag(trap_exit, true).
这个进程报错 监控进程 直接重起 没收到 错误信息
我现在用的 不是otp里的 是自己写的进程
解答:
这个进程报错 监控进程 直接重起 没收到 错误信息
我现在用的 不是otp里的 是自己写的进程
解答:
--你貌似搞错了trap_exit的地方了。不是要死的process自我trap_exit, 而是他的监护process去trap_exit被监护的。也就是你不应该“在这个进程里加process_flag(trap_exit,true)", 而是在你“不是otp里的,自己写的“的监护process里加上trap_exit。你死掉的被监护的process自我无法trap_exit的,而且,因为你加的地方不是对的,直接一个‘EXIT’消息扩散到监护process, 而它却没有trap_exit, 会被连带干掉的(并继续扩散, 如果有上一级).
本文转载自:erlang中国(www.erlangchina.net)
本文解释了Erlang中进程监控机制的正确使用方法,强调了如何避免进程错误信息丢失的问题。指出正确的做法是在监护进程中设置process_flag(trap_exit,true),而非在被监控的进程中设置。
74

被折叠的 条评论
为什么被折叠?



