From 06c63770a577d3537dd7e10f663c6d50db431236 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Mon, 7 Jun 2021 13:20:46 -0700 Subject: [PATCH] crimson/common/interruptible_future: add ready|exception_future_marker constructors Signed-off-by: Samuel Just --- src/crimson/common/interruptible_future.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/crimson/common/interruptible_future.h b/src/crimson/common/interruptible_future.h index f4e5a85570e3d..d05598fe6ad95 100644 --- a/src/crimson/common/interruptible_future.h +++ b/src/crimson/common/interruptible_future.h @@ -525,8 +525,6 @@ struct interruptible_errorator { } using pass_further = typename Errorator::pass_further; - using ready_future_marker = ready_future_marker; - using exception_future_marker = exception_future_marker; }; template >&& fut) : core_type(static_cast&&>(fut)) {} + template + [[gnu::always_inline]] + interruptible_future_detail(ready_future_marker, A&&... a) + : core_type(::seastar::make_ready_future( + std::forward(a)...)) { + } + [[gnu::always_inline]] + interruptible_future_detail(exception_future_marker, ::seastar::future_state_base&& state) noexcept + : core_type(::seastar::futurize::make_exception_future(std::move(state))) { + } + [[gnu::always_inline]] + interruptible_future_detail(exception_future_marker, std::exception_ptr&& ep) noexcept + : core_type(::seastar::futurize::make_exception_future(std::move(ep))) { + } + template = 0> [[gnu::always_inline]]