该模块主要用于gen模块中同步和异步创建进程

翻开源码,就会发现最底层实际就对是erlang模块中几个spawn相关的bif做了一层代理。

而proc_lib:sync_wait/2 和proc_lib:init_ack/1,2在初始化时的配对使用,又为上层提供了同步初始化的功能。

 

添加这层封装,主要目的在于,在进程初始化的过程中往进程字典中注入一些我们感兴趣的信息。 

1.累积'$ancestor'字段, 基本就相当于进程树的祖先节点了,这是一个list。

2.添加'$initial_call'字段, 字面意思也知道是初始化调用函数了。

而进程字典中的这些信息, 在进程初始化崩溃时又会汇集成crash_report发送给error_logger(请看上篇日志http://www.cnblogs.com/star-star/archive/2012/12/14/2811892.html),进而形成进程崩溃日志。

 

 posted on 2012-12-17 11:19  文武双全大星星  阅读(219)  评论(0编辑  收藏  举报