From: Kefu Chai Date: Sat, 19 Dec 2020 12:04:24 +0000 (+0800) Subject: crimson/common: verify that tri_mutex is not locked in its dtor X-Git-Tag: v17.0.0~178^2~10 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=4d82fe946a6c0c63bc76cb8f092e484741b2aabc;p=ceph.git crimson/common: verify that tri_mutex is not locked in its dtor otherwise we have a bug. Signed-off-by: Kefu Chai --- diff --git a/src/crimson/common/tri_mutex.cc b/src/crimson/common/tri_mutex.cc index 7ec52522a70eb..c18aff1a00fe9 100644 --- a/src/crimson/common/tri_mutex.cc +++ b/src/crimson/common/tri_mutex.cc @@ -64,6 +64,11 @@ void excl_lock_from_excl::unlock() { } +tri_mutex::~tri_mutex() +{ + assert(!is_acquired()); +} + seastar::future<> tri_mutex::lock_for_read() { if (try_lock_for_read()) { diff --git a/src/crimson/common/tri_mutex.h b/src/crimson/common/tri_mutex.h index 03e6474c40a44..127573b3ae458 100644 --- a/src/crimson/common/tri_mutex.h +++ b/src/crimson/common/tri_mutex.h @@ -67,6 +67,7 @@ class tri_mutex : private read_lock, { public: tri_mutex() = default; + ~tri_mutex(); read_lock& for_read() { return *this;