void AsyncOpTracker::Kill(AsyncOp *theOp) { AutoCrit aCrit(mDataCrit); AsyncOpPtr anOp = theOp; if(Untrack(theOp)) anOp->Kill(); }
void AsyncOpTracker::KillAll() { AutoCrit aCrit(mDataCrit); OpMap::iterator anItr = mOpMap.begin(); while(anItr!=mOpMap.end()) { AsyncOpPtr anOp = anItr->second->val; mOpMap.erase(anItr++); anOp->Kill(); } }
void AsyncOpTracker::Kill(DWORD theId) { AutoCrit aCrit(mDataCrit); OpMap::iterator anItr = mOpMap.find(theId); while(anItr!=mOpMap.end() && anItr->first==theId) { AsyncOpPtr anOp = anItr->second->val; mOpMap.erase(anItr++); anOp->Kill(); } }