//--------------------------------------------------------------------------- void MediaInfoList_Internal::Close(size_t FilePos) { if (IsRunning()) { RequestTerminate(); while(IsExited()) Yield(); } CriticalSectionLocker CSL(CS); if (FilePos==Unlimited) { for (size_t Pos=0; Pos<Info.size(); Pos++) { delete Info[Pos]; Info[Pos]=NULL; } Info.clear(); } else if (FilePos<Info.size()) { delete Info[FilePos]; Info[FilePos]=NULL; Info.erase(Info.begin()+FilePos); } ToParse_AlreadyDone=0; ToParse_Total=0; }
//--------------------------------------------------------------------------- void QueueElement::stop() { RequestTerminate(); MI_CS.Enter(); if (MI) MI->Option(__T("File_RequestTerminate"), String()); MI_CS.Leave(); while (!IsExited()) Yield(); }
int CProcess::CExitInfo::GetExitCode(void) const { if ( !IsExited() ) { return -1; } #if defined(NCBI_OS_UNIX) return WEXITSTATUS(status); #elif defined(NCBI_OS_MSWIN) return status; #endif }