int CEmsInfo::CollectProcess() { int nRet = 0; time_t receiveTime = 0; time_t currentTime = 0; list<CSessionInfo*>::iterator iter; CSessionInfo *cSession = NULL; currentTime = time(NULL); for(iter=m_lstPendingQueue.begin();iter != m_lstPendingQueue.end();){ cSession = *iter; receiveTime = cSession->GetReceiveTime(); if((currentTime - receiveTime) > RECEIVE_WAIT_TIME){ DEBUG_LOG("RECEIVE PROCESS\n"); /* receive process */ nRet = CollectAnswer(cSession); if(nRet != STA_OK){ STA_LOG(STA_ERR,"STS Collect failed(nRet=%d)\n",nRet); } m_lstPendingQueue.erase(iter++); delete cSession; } else { iter++; } } return STA_OK; }