庆亮的博客-webgame架构
关注LAMP|PHP源代码分析|web架构|PHP扩展|Erlang|服务端架构
关注LAMP|PHP源代码分析|web架构|PHP扩展|Erlang|服务端架构
八 11th
author: 庆亮 (qing.liang.cn@gmail.com / http://twitter.com/qingliangcn )
date: 2010-07-12
之前同事遇到一个问题,系统运行一段时间后有大量的port没有正常关闭而导致beam崩溃,经过定位发现是由于zlib引起的。过程很简单,没什么技术含量,记录一下。 更多 >
八 3rd
环境:centos 5.5 64 erlang 14A
一、terminate简述及问题产生
terminate是gen_server的一个回调函数,如果一个gen_server进程设置了trap_exit为true(process_flag(trap_exit, true)),则在该进程结束时会自动调用terminate。利用这个功能,我们可以在进程退出时进行一些善后工作,例如持久化数据、清理等等。但实际上terminate不一定有时间完成所有的任务,在此之前可能已经被系统强制结束了(如果使用init:stop形式结束beam)。 更多 >
八 3rd
作者:庆亮 (qing.liang.cn@gmail.com)
日期:2010-08-03
boot之后关注的自然是stop,直接打开erts-5.7.5/src/init.erl源码看了看:
-spec stop() -> no_return().
stop() -> init ! {stop,stop}, ok.
{stop,Reason} ->
stop(Reason,State); 更多 >
八 3rd
说明:遇到一个OTP的问题,疑惑了很久,也就有了这篇文章。
目的:跟踪Erlang的启动过程
参考这里 http://erlangdisplay.javaeye.com/blog/315497 ,直接从erts-5.7.5/src/init.erl 的boot/1函数开始(关于这个链接给出的结论以后会继续研究分析):
最近评论