25 #ifndef SEASTAR_MODULE
26 #include <type_traits>
29 #include <seastar/util/modules.hh>
30 #include <seastar/util/concepts.hh>
33 #ifdef SEASTAR_DEFERRED_ACTION_REQUIRE_NOEXCEPT
34 #define SEASTAR_DEFERRED_ACTION_NOEXCEPT noexcept
36 #define SEASTAR_DEFERRED_ACTION_NOEXCEPT
40 template <typename Func>
41 concept deferrable_action = requires (Func func) {
42 { func() } SEASTAR_DEFERRED_ACTION_NOEXCEPT -> std::same_as<void>;
48 template <
typename Func>
49 SEASTAR_CONCEPT( requires deferrable_action<Func> )
52 bool _cancelled =
false;
54 static_assert(std::is_nothrow_move_constructible_v<Func>,
"Func(Func&&) must be noexcept");
61 this->~deferred_action();
68 void cancel() { _cancelled =
true; }
72 template <
typename Func>
73 SEASTAR_CONCEPT( requires deferrable_action<Func> )
Seastar API namespace.
Definition: abort_on_ebadf.hh:26