6#include <userver/concurrent/async_event_channel.hpp>
7#include <userver/engine/task/task_processor_fwd.hpp>
8#include <userver/os_signals/subscriber.hpp>
9#include <userver/utils/internal_tag_fwd.hpp>
11USERVER_NAMESPACE_BEGIN
17class Processor
final {
19 explicit Processor(engine::TaskProcessor& task_processor);
21 template <
class Class>
22 Subscriber AddListener(Class* obj, std::string_view name,
int signum,
23 void (Class::*func)()) {
24 auto execute = [obj, func, signum](
int sig) {
30 return {channel_.AddListener(concurrent::FunctionId(obj), name,
35 void Notify(
int signum,
utils::InternalTag);
40 engine::TaskProcessor& task_processor_;