• 删除事件处理器

    删除事件处理器

    1. 4> gen_event:delete_handler(error_man, terminal_logger, []).
    2. ok

    这函数给注册为 error_man 的事件管理器发送了一个消息,告诉它要删除处理器 terminal_logger 。事件管理器会调用回调函数 terminal_logger:terminate([]) ,其中参数[]是传给 delete_handler 的第三个参数。 terminate 应该和 init 相反,进行必要的清理工作。它的返回值会被忽略。

    对于 terminal_logger ,无须任何清理:

    1. terminate(_Args, _State) ->
    2. ok.

    对于 file_logger ,在 init 中打开的文件描述符需要被关闭:

    1. terminate(_Args, Fd) ->
    2. file:close(Fd).