wallet: Close wallet env lock file
Close .walletlock file when a BerkeleyEnvironment is deleted.
This commit is contained in:
parent
8602a1e6ae
commit
2f8b8f479b
3 changed files with 9 additions and 0 deletions
|
@ -116,6 +116,12 @@ bool LockDirectory(const fs::path& directory, const std::string lockfile_name, b
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UnlockDirectory(const fs::path& directory, const std::string& lockfile_name)
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(cs_dir_locks);
|
||||||
|
dir_locks.erase((directory / lockfile_name).string());
|
||||||
|
}
|
||||||
|
|
||||||
void ReleaseDirectoryLocks()
|
void ReleaseDirectoryLocks()
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> ulock(cs_dir_locks);
|
std::lock_guard<std::mutex> ulock(cs_dir_locks);
|
||||||
|
|
|
@ -70,6 +70,7 @@ int RaiseFileDescriptorLimit(int nMinFD);
|
||||||
void AllocateFileRange(FILE *file, unsigned int offset, unsigned int length);
|
void AllocateFileRange(FILE *file, unsigned int offset, unsigned int length);
|
||||||
bool RenameOver(fs::path src, fs::path dest);
|
bool RenameOver(fs::path src, fs::path dest);
|
||||||
bool LockDirectory(const fs::path& directory, const std::string lockfile_name, bool probe_only=false);
|
bool LockDirectory(const fs::path& directory, const std::string lockfile_name, bool probe_only=false);
|
||||||
|
void UnlockDirectory(const fs::path& directory, const std::string& lockfile_name);
|
||||||
bool DirIsWritable(const fs::path& directory);
|
bool DirIsWritable(const fs::path& directory);
|
||||||
|
|
||||||
/** Release all directory locks. This is used for unit testing only, at runtime
|
/** Release all directory locks. This is used for unit testing only, at runtime
|
||||||
|
|
|
@ -136,6 +136,8 @@ void BerkeleyEnvironment::Close()
|
||||||
DbEnv((u_int32_t)0).remove(strPath.c_str(), 0);
|
DbEnv((u_int32_t)0).remove(strPath.c_str(), 0);
|
||||||
|
|
||||||
if (error_file) fclose(error_file);
|
if (error_file) fclose(error_file);
|
||||||
|
|
||||||
|
UnlockDirectory(strPath, ".walletlock");
|
||||||
}
|
}
|
||||||
|
|
||||||
void BerkeleyEnvironment::Reset()
|
void BerkeleyEnvironment::Reset()
|
||||||
|
|
Loading…
Reference in a new issue