glist的陷阱
来源:互联网 发布:三十岁考gre 知乎 编辑:程序博客网 时间:2024/04/30 12:27
由于信赖glib库的高质量,所以在项目中大量的使用了glib中的glist,
随着项目中内容的增加,发现会在glist的g_slice_alloc等函数中莫名其妙的随机出现invalid read等操作,造成程序coredump。
索性写了一个程序,专门测试glist在多线程情况下面的特性,
发现在单线程情况下可以正常运行的glist操作代码在多线程下面会出现随机coredump的情况。
而这些代码在逻辑上已经是保证了线程安全。
故此,得出glib的非线程安全,即使在应用层保证了线程安全,在glib的底层还是非线程安全的。这点在使用时需要注意。
update:
在使用glib之前,调用g_thread_init(NULL)
可以在多线程情况下安全使用glist
- glist的陷阱
- 关于gtk中GList的发现
- 基于glist自定义自己的链表数据结构
- GTree & GList
- GList常用方法
- GTK Gossip: GSList、GList
- '\'的陷阱
- :?的陷阱
- Delphi的接口陷阱
- TWebBrowser的Cache陷阱
- groovy 的陷阱
- 决策者的七大陷阱
- 公司政治的陷阱
- iterator的陷阱
- typedef的两个陷阱
- assert的陷阱
- 盖茨的陷阱
- EULA的陷阱
- 最近开始研究mythTV
- linux学习笔记-读《Linux编程技术详解》(1)-SSH和GCC
- 血腥渗透
- 背完这444句,你的口语绝对不成问题了
- qq使用的网络协议
- glist的陷阱
- SQL2005以上版本数据库级触发器的应用
- 一步一步学Remoting系列文章
- 北邮OJ上的题目——1435
- ASP.NET 2.0 绑定高级技巧
- Flex+java开发环境配置
- 层序遍历二叉树
- const与指针搭配使用总结
- c++之学习程序Matrix_1