erlang源码分析
文章平均质量分 90
没有开花的树
这个作者很懒,什么都没留下…
展开
-
erlang判断模块导出函数问题
erlang本身提供一个接口,可以用来检查模块是否有导出函数,这个接口是erlang:function_exported/3,但是很多时候这个接口无法正常使用。很多模块在erlang启动时都没有加载到系统,都是在使用到的时候才加载,所以这个检查导出函数的接口可能会出现错误的结果。文章讨论这个问题的解决方案及为什么会这样的原因。原创 2014-11-01 01:27:49 · 4564 阅读 · 0 评论 -
从erlang时间函数说到时间校正机制
很多人会注意到这个问题,erlang提供了2个时间函数,erlang:now() 和 os:timestamp()。用法一样,都是返回当前的时间。具体时间是从1970年1月1日零时算起,到现在经过的时间,结果为{MegaSecs, Secs, MicroSecs}。这两个函数有什么区别?而且,为什么要有 erlang:now() 函数。这就是文章想讨论的内容,从erlang时间函数说到时间校正体系。原创 2015-04-29 00:34:06 · 4393 阅读 · 23 评论 -
分析erlang热更新实现机制
Joe Armstrong在描述Erlang的设计要求时,就提到了软件维护应该能在不停止系统的情况下进行。在实践中,我们也因为这种不停止服务的热更新获益良多。那么Erlang是如何做到热更新的呢?这就是本文要讨论的问题。在前面的文章也提及到erlang热更新的机制,现在继续深入剖析erlang热更新实现机制。原创 2015-02-10 01:08:22 · 8109 阅读 · 8 评论 -
erlang catch的内部实现(初稿)
最近项目组有同事做了erlang内部数据(Eterm)的分享。Eterm 是Erlang Term的简写,用来表示erlang中任意类型的数据,也就是说,erlang可以用到的任意数据,都能 Eterm表示。比如常见的atom、数字、列表、元组,甚至pid,port,fun,ets表等等都用Eterm可以表示。但为什么会有一个叫catch的Eterm?相信不少人都会有这样的疑问。所以,本文就围绕着 catch 进行分析和讨论。原创 2015-03-31 01:16:10 · 3059 阅读 · 0 评论 -
erlang进程监控的实现原理
Erlang支持Monitor和Link两种监控进程的方式,使得所有进程可以连成一个整体。当某个进程出错退出时,监控进程会收到该进程退出的消息通知。有了这些特点,使用Erlang建立一个简单,并且健壮的系统就不是什么难事。前面有文章分析了两种方式的用法,这里分析下monitor和link的实现。原创 2015-07-20 20:10:32 · 3458 阅读 · 0 评论