我正在使用gen_server模块中的进程字典,我调用了get()函数,我得到了类似的东西。
{'$ancestors',[main_server,<0.30.0>]},
{'$initial_call',{child_server,init,1}}]
如果我删除了流程词典会发生什么,会出什么问题? 我删除它,每件事情都很好,甚至 调用在child_server中生成异常的函数,main_server仍然可以获得退出信号。
答案 0 :(得分:1)
我认为一些调试函数可能使用进程字典,例如erlang:process_info / 2
答案 1 :(得分:1)
$ancestors
仅在初始化阶段使用 ,以获取父级的PID,用于捕获来自父级的EXIT
消息,以便{ {1}}东西可以被执行。在服务器启动并运行时擦除此密钥没有任何区别。
terminate
在$initial_call
的崩溃报告中用于转储MFA信息。
OTP源代码树中的快速proc_lib
肯定有帮助。