struct interruptor
{
public:
- template <typename T>
- using future = interruptible_future<InterruptCond, T>;
-
template <typename FutureType>
[[gnu::always_inline]]
static interruptible_future_detail<InterruptCond, FutureType>
struct futurize {
using type = interruptible_future_detail<
InterruptCond, typename seastar::futurize<T>::type>;
-
- template <typename Func, typename... Args>
- static type invoke(Func&& func, Args&&... args) noexcept {
- return seastar::futurize<T>::invoke(
- std::forward<Func>(func),
- std::forward<Args>(args)...);
- }
};
template <typename FutureType>
struct futurize<interruptible_future_detail<InterruptCond, FutureType>> {
using type = interruptible_future_detail<InterruptCond, FutureType>;
-
- template <typename Func, typename... Args>
- static type invoke(Func&& func, Args&&... args) noexcept {
- return seastar::futurize<FutureType>::invoke(
- std::forward<Func>(func),
- std::forward<Args>(args)...);
- }
};
template <typename T>