userver: userver/hostinfo/cpu_limit.hpp Source File
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
cpu_limit.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/hostinfo/cpu_limit.hpp
4/// @brief Information about CPU limits in container.
5/// @ingroup userver_universal
6
7#include <optional>
8
9USERVER_NAMESPACE_BEGIN
10
11/// @brief Information about current host.
12namespace hostinfo {
13
14/// @brief Returns the CPU limit.
15///
16/// Unlike `nproc` and
17/// `std::thread::hardware_concurrency` this method considers container limits
18/// and may return fractional values.
19///
20/// Uses:
21/// * CPU_LIMIT environment variable (example: `CPU_LIMIT=1.95c`).
22std::optional<double> CpuLimit();
23
24/// @brief Returns true if the current process is run in container (CPU_LIMIT
25/// environment variable is set).
26bool IsInRtc();
27
28} // namespace hostinfo
29
30USERVER_NAMESPACE_END