【发布时间】:2014-12-05 23:51:03
【问题描述】:
我想在我的 gen_server 停止时执行一些代码。我有我的 gen_server 陷阱出口(我在 init 回调中添加了process_flag(trap_exit, true))。这很好用,因为总是在进程退出之前调用terminate/2。我知道,由于我正在捕获崩溃的退出链接进程,因此不会使我创建的 gen_server 崩溃。我可以解决这个问题,但我想知道是否有替代使用 process_flag(trap_exit, true) 来实现这一点?
我只想要一个“在进程退出之前”回调。还有其他类似的退出吗?
【问题讨论】:
-
您希望链接进程杀死
gen_server,但您还希望在退出时调用terminate(或类似的)? -
没错。我的理解是,如果我捕获退出,则没有其他进程会导致我的 gen_server 崩溃,如果出现问题,它确实应该崩溃。
-
我很确定捕获退出只会导致它运行终止然后退出。它是否真的阻止了 gen_server 停止?
标签: process erlang exit erlang-supervisor gen-server