17 std::size_t result = 0;
18 const char* ttg_num_threads_cstr = std::getenv(
"TTG_NUM_THREADS");
19 if (ttg_num_threads_cstr) {
20 const auto result_long = std::atol(ttg_num_threads_cstr);
22 result =
static_cast<std::size_t
>(result_long);
24 throw std::runtime_error(
"ttg: invalid value of environment variable TTG_NUM_THREADS");
26 result = std::thread::hardware_concurrency();
28 if (result > std::numeric_limits<int>::max())
29 throw std::runtime_error(
"ttg: number of threads exceeds the maximum limit");
31 return static_cast<int>(result);