当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang demonitor(MonitorRef, OptionList)用法及代码示例


demonitor(MonitorRef, OptionList) -> boolean()
类型:
MonitorRef = reference()
OptionList = [Option]
Option = flush | info

返回值是 true 除非 infoOptionList 的一部分。

demonitor(MonitorRef, [])相当于 demonitor(MonitorRef).

Option s:


flush

监视停止后,从调用者消息队列中删除(一条){_, MonitorRef, _, _, _} 消息(如果有)。

调用demonitor(MonitorRef, [flush])相当于以下内容,但效率更高:

demonitor(MonitorRef),
receive
    {_, MonitorRef, _, _, _} ->
        true
after 0 ->
        true
end

info

返回值是以下之一:


true

监视器被发现并被拆除。此时,该监视器对应的'DOWN'消息尚未下发,也不会下发。


false

未找到监视器且无法移除。这可能是因为有人已经将与此监视器对应的 'DOWN' 消息放入调用者消息队列中。

如果选项 info 与选项 flush 组合,则在需要刷新时返回 false,否则返回 true

改变

未来版本中可以添加更多选项。

失败:


badarg
如果OptionList不是列表。

badarg
如果Option 是无效选项。

badarg
与以下相同的失败demonitor/1.

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 demonitor(MonitorRef, OptionList) -> boolean()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。