timerd/timermanager.cpp: fix using invalidated after erase iterator

This commit is contained in:
[CST] Focus
2012-05-09 19:38:07 +04:00
parent a79e374cab
commit 1f415fb39e

View File

@@ -212,8 +212,10 @@ void* CTimerManager::timerThread(void *arg)
pos->second->printEvent();
dprintf("\n");
delete pos->second; // delete event
timerManager->events.erase(pos); // remove from list
timerManager->events.erase(pos++); // remove from list
timerManager->m_saveEvents = true;
if(pos == timerManager->events.end())
break;
}
}
pthread_mutex_unlock(&tm_eventsMutex);