Move BerkeleyEnvironment deletion from internal method to callsite

Instead of having the object destroy itself, having the caller
destroy it.

Github-Pull: #12493
Rebased-From: a769461
This commit is contained in:
Andrew Chow 2018-07-13 19:15:30 -07:00 committed by João Barbosa
parent 048fda2a66
commit 435df68c62

View file

@ -724,7 +724,6 @@ void BerkeleyEnvironment::Flush(bool fShutdown)
if (!fMockDb) { if (!fMockDb) {
fs::remove_all(fs::path(strPath) / "database"); fs::remove_all(fs::path(strPath) / "database");
} }
g_dbenvs.erase(strPath);
} }
} }
} }
@ -823,7 +822,11 @@ void BerkeleyDatabase::Flush(bool shutdown)
{ {
if (!IsDummy()) { if (!IsDummy()) {
env->Flush(shutdown); env->Flush(shutdown);
if (shutdown) env = nullptr; if (shutdown) {
LOCK(cs_db);
g_dbenvs.erase(env->Directory().string());
env = nullptr;
}
} }
} }