注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

yu.chen的博客

坚持到底就是胜利

 
 
 

日志

 
 
关于我

喜欢数学, 喜欢编程,喜欢开发系统,喜欢逆向工程,喜欢欣赏开源前辈的代码

网易考拉推荐

trap_exit,true没有起作用的原因  

2013-06-06 12:50:38|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
周末开始的代码还没有结束,想用let it crash代替自建的新消息,出现了问题。

两个link的process,为什么当一个process crash时,另一个没有收到exit消息?
1. 原来以为是一个简单的问题,但是调试后没有结果
2. 在stackoverflow上提出问题,没有人回答,估计很多人被难倒了。
3. 没有回答,那只能自己解决
3.1 不断的简化代码,最后发现问题还在
3.2. 重新构造了两个模块,干净的模块,发现问题还在
3.3. 发现有时问题不在
3.4. 比较了两种情况的差异,发现问题是与谁调用有关的,
两个模块存在link,但是如果两个模块之间发生了相互调用,而且这种调用是同步调用,(gen_server:call),如果被调用者crash了,另一个模块一定也会crash,而不是收到exit消息。
原因应该在gen_server:call的源码中可以找到
3.5. 就当规律使用了
  评论这张
 
阅读(77)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017