//--------------------------------------------------------------------------------------------------------------------- // Aborts all processes. If immediate == true, it immediately calls each ones OnAbort() function and destroys all // the processes. //--------------------------------------------------------------------------------------------------------------------- void ProcessManager::AbortAllProcesses(bool immediate) { ProcessList::iterator it = m_processList.begin(); while (it != m_processList.end()) { ProcessList::iterator tempIt = it; ++it; StrongProcessPtr pProcess = *tempIt; if (pProcess->IsAlive()) { pProcess->SetState(Process::ABORTED); if (immediate) { pProcess->VOnAbort(); m_processList.erase(tempIt); } } } }
void ProcessManager::AbortAllProcesses(bool immediate) { auto it = m_ProcessList.begin(); while (it != m_ProcessList.end()) { auto tempIt = it; ++it; StrongProcessPtr pProcess = *tempIt; if (pProcess->IsAlive()) { pProcess->SetState(Process::ABORTED); // if immediate, call the abort code and erase the process now if (immediate) { pProcess->OnAbort(); m_ProcessList.erase(tempIt); } } } }
void CProcessManager::AbortAllProcesses( bool immediate ) { ProcessList::iterator it = m_ProcessList.begin(); while (it != m_ProcessList.end()) { //in case we need to delete 'it' ProcessList::iterator thisIt = it; ++it; StrongProcessPtr pCurrent = (*thisIt); if (immediate) { (*it)->SetState( CProcess::ABORTED ); if (pCurrent->IsAlive()) { (*it)->VOnAbort(); m_ProcessList.erase( thisIt ); } } } }