- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在观看Erlang上的Pragmatic Studio屏幕广播之后,有关Supervisors的最后一个视频提到,为了使主管能够获得有关其子级之一的通知,以便可以正确地重新启动它,该子级应向process_flag(trap_exit, true)
注册。也许我只是误解了作者(我误会的机会非常高),但我认为主管可以自动知道 child 何时死亡(可能是通过spawn_link或类似的背景)。这真的有必要吗?在实际情况下,何时应该使用process_flag(trap_exit,true),因为文档明确声明了以下内容:
http://www.erlang.org/doc/man/erlang.html#process_flag-2
process_flag(trap_exit, Boolean)
When trap_exit is set to true, exit signals arriving to a process are converted to {'EXIT', From, Reason} messages, which can be received as ordinary messages. If trap_exit is set to false, the process exits if it receives an exit signal other than normal and the exit signal is propagated to its linked processes. Application processes should normally not trap exits.``
最佳答案
您有3个成语:
1 /我不在乎我的 child 进程是否死亡:
spawn(...)
spawn_link(...)
process_flag(trap_exit, true),
spawn_link(...)
-module(play).
-compile(export_all).
start() ->
process_flag(trap_exit, true),
spawn_link(?MODULE, inverse, [2]),
loop().
loop() ->
receive
Msg -> io:format("~p~n", [Msg])
end,
loop().
inverse(N) -> 1/N.
关于erlang - Erlang和process_flag(trap_exit,true),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6720472/
我有一个正在使用的 gen_server: -module(user_info_provider). -export([start_link/0, stop/0]). -export([init/1,
我是一名优秀的程序员,十分优秀!