gpt4 book ai didi

process - 为什么erlang中使用 'monitor'选项:spawn_opt disabled?

转载 作者:行者123 更新时间:2023-12-02 14:35:22 24 4
gpt4 key购买 nike

我碰巧读到了一个名为 monitorspawn_opt:http://www.erlang.org/doc/man/erlang.html#spawn_opt-2

但是当我使用它时,我得到了这个:

1> gen_server:start(some_module, [], [{spawn_opt, [monitor]}]).
** exception error: bad argument
in function proc_lib:check_for_monitor/1 (proc_lib.erl, line 182)
in call from proc_lib:spawn_opt/4 (proc_lib.erl, line 161)
in call from proc_lib:start_link/5 (proc_lib.erl, line 317)
2>

这就是 OTP 中 proc_lib.erl 中第 182 行周围发生的情况:

%% OTP-6345
%% monitor spawn_opt option is currently not possible to use
check_for_monitor(SpawnOpts) ->
case lists:member(monitor, SpawnOpts) of
true ->
erlang:error(badarg);
false ->
false
end.

故意禁用monitor选项,但我不明白为什么。我搜索了一下在OTP-6345上,事实证明它来自发行说明,我也找不到足够的信息:http://www.erlang.org/download/otp_src_R11B-3.readme

我们一直手动执行“spawn-then-monitor”步骤,没有任何问题,但为什么 OTP 代码选择完全忽略“monitor”选项?是否有潜在的种族条件或任何其他陷阱?

最佳答案

该修复与this email相关, proc_lib 和监视器的功能似乎有一些重叠,这导致了这个问题。

关于process - 为什么erlang中使用 'monitor'选项:spawn_opt disabled?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12402234/

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