From: Patrick Donnelly Date: Tue, 3 Oct 2023 20:45:12 +0000 (+0000) Subject: common/ceph_mutex: note whether mutex debug methods are usable X-Git-Tag: v17.2.8~482^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2fe7595e025eca0e6f49efcb77b87a7fc9182ebf;p=ceph.git common/ceph_mutex: note whether mutex debug methods are usable So we can do checks like: ceph_assert(!ceph::mutex_debugging || !ceph_mutex_is_locked_by_me(lock)); Without this boolean, this check: ceph_assert(!ceph_mutex_is_locked_by_me(lock)); will fail for all crimson/release builds because the method always returns true. Signed-off-by: Patrick Donnelly (cherry picked from commit a8bd314bbd78dbe73371e7a8beaaa1929577b76e) --- diff --git a/src/common/ceph_mutex.h b/src/common/ceph_mutex.h index 81777c7dbe2a..5b6d8de430f7 100644 --- a/src/common/ceph_mutex.h +++ b/src/common/ceph_mutex.h @@ -54,6 +54,7 @@ namespace ceph { return {}; } + static constexpr bool mutex_debugging = false; #define ceph_mutex_is_locked(m) true #define ceph_mutex_is_locked_by_me(m) true } @@ -101,6 +102,8 @@ namespace ceph { return {std::forward(args)...}; } + static constexpr bool mutex_debugging = true; + // debug methods #define ceph_mutex_is_locked(m) ((m).is_locked()) #define ceph_mutex_is_not_locked(m) (!(m).is_locked()) @@ -154,6 +157,8 @@ namespace ceph { return {}; } + static constexpr bool mutex_debugging = false; + // debug methods. Note that these can blindly return true // because any code that does anything other than assert these // are true is broken.