概览

因malloc是加锁的,上网了解的相关信息,额外了解到信号处理规范使用,mark

正文

在执行malloc的过程中,跳转到了信号处理函数中。而信号处理函数在调用某个系统api时,内部又调用了malloc。 看了glibc源码就会知道,malloc内部也是有锁、而且是非嵌套的,如果在上一次调用中拿到锁,又跳转到信号处理函数中再次malloc,自然就导致死锁了。而且即使没有死锁,也极有可能破坏malloc内部维护的一些全局信息,导致后面莫名其妙的崩溃;由此可见,对于信号处理函数“必须保证可重入”这一点,在实际编码中必须慎之又慎,时刻谨记。
一般来说,信号处理函数中要做的事情应该尽量简单。通常可以置一个标识,由其他线程检测到这个标识后再做相应处理,而不是直接在信号处理函数中做这些事情。

ref

https://blog.csdn.net/zyboy2000/article/details/78964314

最新文章

  1. floodlight 中两个互相矛盾的地方
  2. 【网络收集】MySql中IS NOT NULL与!=NULL的区别
  3. 滑动选择日期(基于sui-mobile的移动端)
  4. docker 镜像和容器的批量清理
  5. Latex加速: TexStudio的安装和使用
  6. Scala入门系列(十三):类型参数
  7. Jquery中 .empty()和.append()
  8. [android] 保存文件到SD卡
  9. Android开发过程中的坑及解决方法收录(五)
  10. Android为TV端助力 关于JNI的使用方法
  11. 牛客网 2018年东北农业大学春季校赛 L题 wyh的天鹅
  12. 【读书笔记】iOS-对iOS应用进行模糊测试
  13. Django web project
  14. checked 选择框选中
  15. PHP防止跨站表单提交与同站跨页伪造表单的攻击
  16. 【Oracle】Windows定时计划每天备份数据库
  17. Js实现AES/RSA加密
  18. PowerDesigner生成数据库表和逆向生成表结构(MySQL数据库)
  19. javascript:json对象和json字符串的相互转换
  20. 洛谷 P1509 找啊找啊找GF

热门文章

  1. Python自动输入【新手必学】
  2. CSS——overflow的参数以及使用
  3. Node Js模块讲解
  4. svn下载多模块及依赖框架的项目
  5. Java 打印Word文档
  6. c++-构造函数练习和delete,new
  7. 设计模式之单例模式C#实现
  8. 暴力破解( Hydra | Medusa)
  9. Android 程序分析环境搭建-开发环境搭建
  10. nfs 所有的版本的 RFC 整理; nfs 所有版本对比;