From: Samuel Just Date: Mon, 7 Jun 2021 20:20:46 +0000 (-0700) Subject: crimson/common/interruptible_future: add ready|exception_future_marker constructors X-Git-Tag: v17.1.0~1567^2~15 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=06c63770a577d3537dd7e10f663c6d50db431236;p=ceph.git crimson/common/interruptible_future: add ready|exception_future_marker constructors Signed-off-by: Samuel Just --- diff --git a/src/crimson/common/interruptible_future.h b/src/crimson/common/interruptible_future.h index f4e5a85570e3..d05598fe6ad9 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]]