bool eraseIsInvalidated(void) { boost::mutex::scoped_lock lock(m_mapCgcRemote.mutex()); CLockMap<unsigned long, cgcRemote::pointer>::iterator pIter; for (pIter=m_mapCgcRemote.begin(); pIter!=m_mapCgcRemote.end(); pIter++) { cgcRemote::pointer pCgcRemote = pIter->second; if (pCgcRemote->isInvalidate()) { m_mapCgcRemote.erase(pIter); return true; } } return false; }