void releaseFile(const std::string &filename){ std::string lockDir = getFileLock(filename); #if (OCCA_OS == LINUX_OS) || (OCCA_OS == OSX_OS) rmdir(lockDir.c_str()); #else BOOL retStatus = RemoveDirectoryA(lockDir.c_str()); assert(retStatus == TRUE); #endif }
void waitForFile(const std::string &filename){ struct stat buffer; std::string lockDir = getFileLock(filename); const char *c_lockDir = lockDir.c_str(); while(stat(c_lockDir, &buffer) == 0) /* Do Nothing */; }
bool haveFile(const std::string &filename){ std::string lockDir = getFileLock(filename); #if (OCCA_OS == LINUX_OS) || (OCCA_OS == OSX_OS) int mkdirStatus = mkdir(lockDir.c_str(), 0755); // Someone else is making it if(mkdirStatus && (errno == EEXIST)) return false; return true; #else LPCSTR lockDirStr = lockDir.c_str(); BOOL mkdirStatus = CreateDirectoryA(lockDirStr, NULL); if( mkdirStatus == FALSE) { assert(GetLastError() == ERROR_ALREADY_EXISTS); return false; } return true; #endif }
int FilelistGetLock(gp_file_t *pFile, int index) { return getFileLock(pFile, index); }