首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gen_server:什么是monitor‘`start_monitor/4’?

gen_server:什么是monitor‘`start_monitor/4’?
EN

Stack Overflow用户
提问于 2021-09-10 09:17:21
回答 1查看 40关注 0票数 0

OTP文档表示,gen_server:start_monitor/4的签名是:

代码语言:javascript
复制
start_monitor(ServerName, Module, Args, Options) -> Result
OTP 23.0
Types
ServerName = {local,Name} | {global,GlobalName}
  | {via,Module,ViaName}
 Name = atom()
 GlobalName = ViaName = term()
Module = atom()
Args = term()
Options = [Option]
 Option = {debug,Dbgs} | {timeout,Time} | {hibernate_after,HibernateAfterTimeout} | {spawn_opt,SOpts}
  Dbgs = [Dbg]
   Dbg = trace | log | statistics | {log_to_file,FileName} | {install,{Func,FuncState}}
  SOpts = [term()]
Result = {ok,{Pid,Mon}} | ignore | {error,Error}
 Pid = pid()
 Error = {already_started,Pid} | term()

Mon是什么?医生们只是说:

"Mon是对为监视服务器而设置的监视器的引用“

现在我知道Mon是一个监视器,它监视它,但是它的类型是什么?

读到erlang.erl,我发现:

代码语言:javascript
复制
-type registered_name() :: atom().
-type registered_process_identifier() :: registered_name() | {registered_name(), node()}.
-type monitor_process_identifier() :: pid() | registered_process_identifier().

Mon pid() | atom() | {atom(), node()}的类型也是如此

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-10 10:50:49

Mon是监视器的引用:

代码语言:javascript
复制
monitor_return({{ok, Pid}, Mon}) when is_pid(Pid), is_reference(Mon) ->
    %% Successful start_monitor()...
    {ok, {Pid, Mon}};

(代码为这里)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69129995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档