Ejemplo n.º 1
0
//---------------------------------------------------------------------------------------------------------------------
// 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);
			}
		}
	}
}
Ejemplo n.º 3
0
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 );
            }
        }
    }
}