//--------------------------------------------------------------------------------------------------------------------- // 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); } } } }