ThreadSchedule 3.0.0
Modern C++ thread management library
Loading...
Searching...
No Matches
worker_context_guard.hpp File Reference

Worker identity, CPU selection, and registration helpers. More...

#include "../../expected.hpp"
#include "../registry/backend.hpp"
#include "../scheduling/native.hpp"
#include "../thread_backend.hpp"
#include <algorithm>
#include <condition_variable>
#include <cstddef>
#include <exception>
#include <future>
#include <iterator>
#include <mutex>
#include <string>
#include <system_error>
#include <type_traits>
#include <utility>
#include <vector>
Include dependency graph for worker_context_guard.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  threadschedule::detail::worker_startup_latch
 
class  threadschedule::detail::worker_context_guard< Pool >
 

Namespaces

namespace  threadschedule
 
namespace  threadschedule::detail
 Aggregates multiple thread_registry_backend instances into a single queryable view.
 

Functions

template<typename Iterator >
auto threadschedule::detail::multipass_range_size (Iterator begin, Iterator end) -> size_t
 
void threadschedule::detail::throw_worker_deadlock ()
 
auto threadschedule::detail::worker_thread_name (std::string const &name_prefix, size_t index) -> std::string
 
template<typename WorkerRange >
auto threadschedule::detail::configure_worker_threads (WorkerRange &workers, std::string const &name_prefix, native_scheduling_policy policy, native_thread_priority priority, thread_registry_backend *registry=nullptr) -> expected< void, std::error_code >
 
template<typename WorkerRange >
auto threadschedule::detail::configure_worker_threads (WorkerRange &workers, native_thread_config const &config, thread_registry_backend *registry=nullptr) -> expected< void, std::error_code >
 
template<typename WorkerRange >
auto threadschedule::detail::set_worker_affinity (WorkerRange &workers, native_thread_affinity const &affinity) -> expected< void, std::error_code >
 
template<typename WorkerRange >
auto threadschedule::detail::distribute_workers_across_cpus (WorkerRange &workers) -> expected< void, std::error_code >
 
template<typename Pool , typename Iterator , typename F >
void threadschedule::detail::parallel_for_each_chunked (Pool &pool, Iterator begin, Iterator end, F &&func, size_t num_workers)
 

Variables

template<typename Iterator >
constexpr bool threadschedule::detail::is_forward_iterator_v = std::is_base_of_v<std::forward_iterator_tag, typename std::iterator_traits<Iterator>::iterator_category>
 

Detailed Description

Worker identity, CPU selection, and registration helpers.

Self-contained internal implementation header.

Definition in file worker_context_guard.hpp.