if compiled with C++20, C++ concept is enabled. to ensure the
constraints required by when_all_impl() is fulfilled, we need to
specialize is_tuple_of_futures<> for interruptible_future.
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
{};
}
+SEASTAR_CONCEPT(
+namespace crimson::interruptible {
+ template<typename InterruptCond, typename FutureType>
+ class interruptible_future_detail;
+}
+namespace seastar::impl {
+ template <typename InterruptCond, typename FutureType, typename... Rest>
+ struct is_tuple_of_futures<std::tuple<crimson::interruptible::interruptible_future_detail<InterruptCond, FutureType>, Rest...>>
+ : is_tuple_of_futures<std::tuple<Rest...>> {};
+}
+)
+
namespace crimson::interruptible {
struct ready_future_marker {};