From 495b70ec6d7c8bfc73211b686c7c8cac30849717 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Sun, 16 Dec 2018 18:34:52 -0800 Subject: [PATCH] ircd::db: Improve shutdown sequence. --- ircd/db.cc | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/ircd/db.cc b/ircd/db.cc index dad699af7..585946c5a 100644 --- a/ircd/db.cc +++ b/ircd/db.cc @@ -1383,7 +1383,7 @@ ircd::db::database::~database() noexcept try { const ctx::uninterruptible::nothrow ui; - + const std::unique_lock lock{write_mutex}; log::info { log, "'%s': closing database @ `%s'...", @@ -1391,13 +1391,7 @@ noexcept try path }; - rocksdb::CancelAllBackgroundWork(d.get(), true); // true = blocking - log::debug - { - log, "'%s': background_errors: %lu; flushing...", - name, - property(*this, rocksdb::DB::Properties::kBackgroundErrors) - }; + bgcancel(*this, true); flush(*this); log::debug @@ -1433,6 +1427,8 @@ noexcept try d->Close() }; + env->st.reset(nullptr); + log::info { log, "'%s': closed database @ `%s' at sequence number %lu.", @@ -3480,11 +3476,6 @@ st{std::make_unique(d)} ircd::db::database::env::~env() noexcept { - log::debug - { - log, "'%s': Shutting down environment...", - d.name - }; } rocksdb::Status @@ -7394,6 +7385,11 @@ ircd::db::database::env::state::state(database *const &d) ircd::db::database::env::state::~state() noexcept { + log::debug + { + log, "'%s': Shutting down environment...", + d.name + }; } //