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:
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user