该模块主要用于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),进而形成进程崩溃日志。