tasks: add task_manager constructor without arguments

Sometimes, e.g. for tests, we may need to create task_manager
without main-specific arguments.
This commit is contained in:
Aleksandra Martyniuk
2023-01-25 13:00:43 +01:00
parent 53366db6c6
commit 6233823cc7
2 changed files with 12 additions and 2 deletions

View File

@@ -278,10 +278,18 @@ future<task_manager::task_ptr> task_manager::module::make_task(task::task_impl_p
task_manager::task_manager(config cfg, class abort_source& as) noexcept
: _cfg(std::move(cfg))
, _as(as)
, _update_task_ttl_action([this] { return update_task_ttl(); })
, _task_ttl_observer(_cfg.task_ttl.observe(_update_task_ttl_action.make_observer()))
, _task_ttl(_cfg.task_ttl.get())
{
_abort_subscription = as.subscribe([this] () noexcept {
_as.request_abort();
});
}
task_manager::task_manager() noexcept
: _update_task_ttl_action([this] { return update_task_ttl(); })
, _task_ttl_observer(_cfg.task_ttl.observe(_update_task_ttl_action.make_observer()))
{}
task_manager::modules& task_manager::get_modules() noexcept {

View File

@@ -47,7 +47,8 @@ private:
task_map _all_tasks;
modules _modules;
config _cfg;
seastar::abort_source& _as;
seastar::abort_source _as;
optimized_optional<abort_source::subscription> _abort_subscription;
serialized_action _update_task_ttl_action;
utils::observer<uint32_t> _task_ttl_observer;
uint32_t _task_ttl;
@@ -190,6 +191,7 @@ public:
};
public:
task_manager(config cfg, abort_source& as) noexcept;
task_manager() noexcept;
modules& get_modules() noexcept;
const modules& get_modules() const noexcept;