]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/interruptible_future: use errorated future as core_type, fix constructor
authorSamuel Just <sjust@redhat.com>
Thu, 10 Jun 2021 00:07:33 +0000 (17:07 -0700)
committerSamuel Just <sjust@redhat.com>
Wed, 23 Jun 2021 18:23:34 +0000 (18:23 +0000)
No reason really to remember the underlying seastar::future type, we should
only be interacting with the errorated future wrapped type.

Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/common/interruptible_future.h

index d2ae5e8880c7d50c90644c2e225cf101eeb60bdb..9323048431870c9b8289dcc5cc66a492a3ef2e06 100644 (file)
@@ -524,7 +524,9 @@ class [[nodiscard]] interruptible_future_detail<
   : private ErroratedFuture<::crimson::errorated_future_marker<T>>
 {
 public:
-  using core_type = ErroratedFuture<::crimson::errorated_future_marker<T>>;
+  using core_type = ErroratedFuture<crimson::errorated_future_marker<T>>;
+  using errorator_type = typename core_type::errorator_type;
+
   template <typename U>
   using interrupt_futurize_t =
     typename interruptor<InterruptCond>::template futurize_t<U>;
@@ -542,14 +544,7 @@ public:
   [[gnu::always_inline]]
   interruptible_future_detail(
     ErroratedFuture2<::crimson::errorated_future_marker<U...>>&& fut)
-    : core_type(std::move(fut)) {
-    using src_errorator_t = \
-      typename ErroratedFuture2<
-       ::crimson::errorated_future_marker<U...>>::errorator_type;
-    static_assert(core_type::errorator_type::template contains_once_v<
-                   src_errorator_t>,
-                 "conversion is only possible from less-or-eq errorated future!");
-  }
+    : core_type(std::move(fut)) {}
 
   template <template <typename...> typename ErroratedFuture2,
            typename... U>