userver: userver/engine/task/task_processor_fwd.hpp Source File
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
task_processor_fwd.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file
4/// @brief @copybrief engine::TaskProcessor
5
6#include <cstdint>
7#include <functional>
8
9/// @file userver/engine/task/task_processor_fwd.hpp
10/// @brief Manages tasks execution on OS threads.
11
12USERVER_NAMESPACE_BEGIN
13
14/// Asynchronous engine primitives
15namespace engine {
16
17/// @brief Manages tasks execution on OS threads.
18///
19/// To create a task processor add its configuration to the "task_processors"
20/// section of the components::ManagerControllerComponent static configuration.
21class TaskProcessor;
22
23/// @brief Get approximate count of ready-to-run tasks on the `task_processor`
24std::size_t GetQueueSize(const TaskProcessor& task_processor);
25
26/// @brief Register a function that runs on all threads on task processor
27/// creation. Used for pre-initializing thread_local variables with heavy
28/// constructors (constructor that does blocking system calls, file access,
29/// ...):
30///
31/// @note It is a low-level function. You might not want to use it.
32void RegisterThreadStartedHook(std::function<void()>);
33
34} // namespace engine
35
36USERVER_NAMESPACE_END