Chinaunix

标题: 如何判断map是否已清除 [打印本页]

作者: jd808    时间: 2016-01-23 11:45
标题: 如何判断map是否已清除
  1. if(pcon->user_module_fd!=NULL && pcon->user_module_fd.size()>0)
  2.                         pcon->user_module_fd.clear();
复制代码
我都这样判断了,还出现*** Error in `./Xgateway': double free or corruption (fasttop): 0x00007f62400009e0 ***
通过debug发现就是这个pcon->user_module_fd.clear();造成的。
作者: littledick    时间: 2016-01-25 17:16
应该是两个或以上线程同时在操作产生的。
你自己定义一个map,连续clear()绝对不会错。
作者: jd808    时间: 2016-01-25 17:42
littledick 发表于 2016-01-25 17:16
应该是两个或以上线程同时在操作产生的。
你自己定义一个map,连续clear()绝对不会错。
确实是多线程,我有懒得加锁,因为这个并不常用,基本就是服务器和服务器之间建立连接,而服务器又很少重启。
作者: windoze    时间: 2016-01-25 22:24
回复 3# jd808

@giantchen说过,凡是在网上问要不要加锁的,都需要加锁。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2