在erlang进程里加了 process_flag(trap_exit, true).
这个进程报错 监控进程 直接重起 没收到 错误信息
我现在用的 不是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)
http://www.erlangchina.net/thread-898-1-1.html
这个进程报错 监控进程 直接重起 没收到 错误信息
我现在用的 不是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)
http://www.erlangchina.net/thread-898-1-1.html
文章讨论了在Erlang进程中错误应用trap_exit导致的进程间连锁崩溃问题,强调了正确的trap_exit使用场景以及如何避免此类错误。
638

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



