10#include <userver/engine/impl/task_context_holder.hpp>
11#include <userver/engine/task/task.hpp>
12#include <userver/engine/task/task_processor_fwd.hpp>
14USERVER_NAMESPACE_BEGIN
22class [[nodiscard]] SharedTask :
public TaskBase {
34 SharedTask(
const SharedTask& other)
noexcept;
41 SharedTask& operator=(
const SharedTask& other)
noexcept;
45 SharedTask(SharedTask&& other)
noexcept;
52 SharedTask& operator=(SharedTask&& other)
noexcept;
59 explicit SharedTask(impl::TaskContextHolder&& context);
63 void DecrementSharedUsages()
noexcept;
64 void IncrementSharedUsages()
noexcept;