8#ifndef NUMAPP_DETAIL_THREAD_HPP
9#define NUMAPP_DETAIL_THREAD_HPP
11#include <condition_variable>
17namespace numapp::detail {
23struct TokenPrepender<true> {
24 template <
class Func,
class... Args>
25 static auto Bind(Func&& func, Args&&... args) {
26 return std::bind(std::forward<Func>(func), std::placeholders::_1, std::forward<Args>(args)...);
31struct TokenPrepender<false> {
32 template <
class Func,
class... Args>
33 static auto Bind(Func&& func, Args&&... args) {
34 return std::bind(std::forward<Func>(func), std::forward<Args>(args)...);
38class ThreadInitializer {
40 ThreadInitializer(std::string_view name, NumaPolicies
const& policies);
45 auto Wait() -> std::system_error
const&;
50 auto Initialize() -> std::error_code;
53 std::string_view m_name;
54 NumaPolicies
const& m_policies;
56 std::optional<std::system_error> m_result;
57 std::condition_variable m_cond;
62 std::unique_lock<std::mutex> m_lck;
Contains declarations for NumaPolicies.