Process 为什么';监视器';在erlang中使用的选项:spawn_opt已禁用?

Process 为什么';监视器';在erlang中使用的选项:spawn_opt已禁用?,process,erlang,monitor,spawn,Process,Erlang,Monitor,Spawn,我碰巧读到一个名为monitor的spawn\u opt: 但当我使用它时,我得到了: 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_o

我碰巧读到一个名为
monitor
spawn\u opt

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

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.
监视器
选项是故意禁用的,但我不明白为什么。我搜索了一下 在
OTP-6345
上,发现它来自发行说明,我也找不到足够的信息:

我们一直在手动执行生成然后监视步骤,没有任何问题,但是为什么OTP代码选择完全忽略
monitor
选项?有潜在的种族吗
条件或任何其他陷阱?

修复程序与之相关,proc_lib和monitor的功能似乎有一些重叠,这导致了问题的出现

这确实很微妙,不会在我们的程序中造成任何实际问题,但很高兴知道细节。非常感谢。