diff --git a/src/fdcache.cpp b/src/fdcache.cpp index 5e5efa2..aa3c92b 100644 --- a/src/fdcache.cpp +++ b/src/fdcache.cpp @@ -1001,10 +1001,10 @@ bool FdEntity::OpenAndLoadAll(headers_t* pmeta, size_t* size, bool force_load) bool FdEntity::GetStats(struct stat& st) { + AutoLock auto_lock(&fdent_lock); if(-1 == fd){ return false; } - AutoLock auto_lock(&fdent_lock); memset(&st, 0, sizeof(struct stat)); if(-1 == fstat(fd, &st)){ @@ -2116,6 +2116,7 @@ FdEntity* FdManager::ExistOpen(const char* path, int existfd, bool ignore_existf void FdManager::Rename(const std::string &from, const std::string &to) { + AutoLock auto_lock(&FdManager::fd_manager_lock); fdent_map_t::iterator iter = fent.find(from); if(fent.end() != iter){ // found