userver: userver/hostinfo/cpu_limit.hpp Source File
Loading...
Searching...
No Matches
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