NUMA++ 0.11.0
Loading...
Searching...
No Matches
makeThreadExample.cpp
1#include <chrono>
2#include <iostream>
3#include <numapp/numa.hpp>
4#include <numapp/thread.hpp>
5
6void ThreadFunc(std::chrono::milliseconds duration) {
7 std::cout << "Thread affinity: " << numapp::CpuAffinity::MakeFromActive() << std::endl;
8
9 std::this_thread::sleep_for(duration);
10}
11
12int main() {
13 using namespace numapp;
14 using namespace std::chrono_literals;
15 if (!NumaAvailable()) {
16 std::cout << "NUMA not available";
17 return -1;
18 }
19
20 NumaPolicies policies;
22 auto thread = MakeThread("myThread", policies, &ThreadFunc, 500ms);
23
24 thread.join();
25}
static CpuAffinity MakeFromCpuStringAll(char const *cpustring)
Create CpuAffinity from `cpustring` without considering current cpuset.
static CpuAffinity MakeFromActive()
Create current affinity settings.
Combines the the available NUMA policy types in one object.
void SetCpuAffinity(std::optional< CpuAffinity > affinity) noexcept
Set CPU affinity.
bool NumaAvailable() noexcept
Query whether system has NUMA support.
Definition numa.hpp:34
std::thread MakeThread(std::string_view thread_name, NumaPolicies const &policies, Func &&func, Args &&... args)
Primary overload accepting string-view for thread_name.
Definition thread.hpp:144
Contains declarations for numapp thread utilities.