Open turbin opened 8 years ago
in: UINT32 TrackerMgr::Initialize(ServerAddress *pAddr, UINT32 nArrCount) from line 40, if the connectToTracker failed, 指针pCurrentConn不会被释放。 nRet = ConnectToTracker(pCurrentConn); if(nRet != enumSuccess_FDFS) { DeleteCriticalSection(&pCurrentConn->csRecv); DeleteCriticalSection(&pCurrentConn->csSend); delete pCurrentConn;
代码中还有几处创建后未释放的地方。
同时建议void TrackerMgr::UnInitialize() 这个操作添加到类的析构函数中。 在判断m_deqConnectionInfo的大小。如果在类析构时发现m_deqConnectionInfo的大小大于0,则执行UnInitialize()
还有对list的遍历请使用iterator。而不要使用m_deqConnectionInfo[]取下标的方式。对执行效率有影响
谢谢关注,会尽快改正
in: UINT32 TrackerMgr::Initialize(ServerAddress *pAddr, UINT32 nArrCount) from line 40, if the connectToTracker failed, 指针pCurrentConn不会被释放。 nRet = ConnectToTracker(pCurrentConn); if(nRet != enumSuccess_FDFS) { DeleteCriticalSection(&pCurrentConn->csRecv); DeleteCriticalSection(&pCurrentConn->csSend); delete pCurrentConn;
代码中还有几处创建后未释放的地方。
同时建议void TrackerMgr::UnInitialize() 这个操作添加到类的析构函数中。 在判断m_deqConnectionInfo的大小。如果在类析构时发现m_deqConnectionInfo的大小大于0,则执行UnInitialize()
还有对list的遍历请使用iterator。而不要使用m_deqConnectionInfo[]取下标的方式。对执行效率有影响