From 5900fb648243a56fc702506e317e75fd2860aa0f Mon Sep 17 00:00:00 2001 From: Matan Breizman Date: Mon, 21 Apr 2025 14:13:34 +0000 Subject: [PATCH] crimson/common/errorator: cleanup ErrorT::handler call call error_t::handle without decalring handler and invoking it later on Signed-off-by: Matan Breizman --- src/crimson/common/errorator.h | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/crimson/common/errorator.h b/src/crimson/common/errorator.h index e7c1684e5becb..47ef83125fa36 100644 --- a/src/crimson/common/errorator.h +++ b/src/crimson/common/errorator.h @@ -930,10 +930,8 @@ private: template ...> decltype(auto) operator()(ErrorT&& e) { using decayed_t = std::decay_t; - auto&& handler = - decayed_t::error_t::handle(std::forward(func)); - static_assert(std::is_invocable_v); - return std::invoke(std::move(handler), std::forward(e)); + return decayed_t::error_t::handle(std::forward(func)) + (std::forward(e)); } }; @@ -978,10 +976,9 @@ public: using decayed_t = std::decay_t; static_assert(contains_once_v, "discarding disallowed ErrorT"); - auto&& handler = decayed_t::error_t::handle([this] (auto&& error_v) { + decayed_t::error_t::handle([this] (auto&& error_v) { ceph_abort_msgf("%s: %s", msg ? msg : "", error_v.message().c_str()); - }); - std::invoke(std::move(handler), std::forward(raw_error)); + })(std::forward(raw_error)); return no_touch_error_marker{}; } }; @@ -1350,10 +1347,9 @@ namespace ct_error { pre_assert(); } using decayed_t = std::decay_t; - auto&& handler = decayed_t::error_t::handle([this] (auto&& error_v) { + decayed_t::error_t::handle([this] (auto&& error_v) { ceph_abort_msgf("%s: %s", msg ? msg : "", error_v.message().c_str()); - }); - std::invoke(std::move(handler), std::forward(raw_error)); + })(std::forward(raw_error)); return no_touch_error_marker{}; } }; @@ -1364,9 +1360,8 @@ namespace ct_error { error_func = std::forward(error_func) ] (auto&& e) mutable -> decltype(auto) { using decayed_t = std::decay_t; - auto&& handler = - decayed_t::error_t::handle(std::forward(error_func)); - return std::invoke(std::move(handler), std::forward(e)); + return decayed_t::error_t::handle(std::forward(error_func)) + (std::forward(e)); }; }; } -- 2.39.5