又一个低级错误.....new 了两次....

 ...

pthread_t id = pthread_self();
//DBMgr* pdb = NULL;
DBMgr* pdb;
if (conn_map_.find_by_key(id, &pdb)) {
new pdb = new DBMgr();
pdb->Init(ip_, port_, name_, user_, password_);
if (conn_map_.insert(id, pdb)) {
printf("insert conn_map error\n");
return NULL;
}
}
return pdb;

....

DBMgr* pdb; 

在里面也 

new pdb = new DBMgr(); 

很简单,可是如果放在一大堆代码里面就难找了....所以一次只改一点真的很重要

原文地址:https://www.cnblogs.com/vimmer/p/2636455.html