当我的管理器进程接收到特定消息时gen_event
,我希望它在所有处理程序都处理完它并且在它们获取和处理任何其他事件之前停止。我能找到的唯一方法是:
-module(manager).
...
stop(Reason) ->
gen_event:sync_notify(manager, {stop, Reason}),
gen_event:stop(manager).
但这要求所有处理程序都remove_handler
从中返回,否则它们可以处理从不同进程之后和之前handle_event({stop, Reason}, State)
发送的事件。我希望有一种对处理程序没有要求的方法。sync_notify
stop