gpt4 book ai didi

erlang - 以原子方式通知并停止 gen_event 管理器

转载 作者:行者123 更新时间:2023-12-01 15:28:09 25 4
gpt4 key购买 nike

当我的 gen_event 管理器进程接收到特定消息时,我希望它在所有处理程序都处理完它之后以及它们获取并处理任何其他事件之前停止。我能找到的唯一方法是:

-module(manager).

...

stop(Reason) ->
gen_event:sync_notify(manager, {stop, Reason}),
gen_event:stop(manager).

但这需要所有处理程序从 handle_event({stop, Reason}, State) 返回 remove_handler,否则它们可能会处理在 sync_notifystop 之前。我更愿意采用一种对处理程序没有任何要求的方法。

最佳答案

据我所知,除了用 exit 简单地杀死事件​​管理器之外,没有其他方法可以做到这一点,除了以一种真正限于一次调用的方式处理(Pid, Reason) 或命令其由其主管关闭。

关于erlang - 以原子方式通知并停止 gen_event 管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5457334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com