ThreadSchedule 3.0.0
Modern C++ thread management library
Loading...
Searching...
No Matches
threadschedule::detail::registered_thread_backend Class Reference

thread_backend with automatic registration in the global thread_registry_backend. More...

#include <registered_thread_backend.hpp>

Inheritance diagram for threadschedule::detail::registered_thread_backend:
[legend]
Collaboration diagram for threadschedule::detail::registered_thread_backend:
[legend]

Public Member Functions

 registered_thread_backend ()=default
 
 registered_thread_backend (registered_thread_backend &&) noexcept=default
 
auto operator= (registered_thread_backend &&) noexcept -> registered_thread_backend &=default
 
 registered_thread_backend (registered_thread_backend const &)=delete
 
auto operator= (registered_thread_backend const &) -> registered_thread_backend &=delete
 
template<typename F , typename... Args>
 registered_thread_backend (std::string name, std::string component, F &&f, Args &&... args)
 
- Public Member Functions inherited from threadschedule::detail::thread_backend
 thread_backend ()=default
 
auto get () noexcept -> std::thread &
 
auto get () const noexcept -> std::thread const &
 
 thread_backend (std::thread &&t) noexcept
 
 thread_backend (std::thread &&t, native_thread_id tid) noexcept
 
template<typename F , typename... Args>
 thread_backend (F &&f, Args &&... args)
 
 thread_backend (thread_backend const &)=delete
 
auto operator= (thread_backend const &) -> thread_backend &=delete
 
 thread_backend (thread_backend &&other) noexcept
 
auto operator= (thread_backend &&other) noexcept -> thread_backend &
 
 ~thread_backend () override
 
auto release () noexcept -> std::thread
 
 operator std::thread () &&noexcept
 
- Public Member Functions inherited from threadschedule::detail::basic_thread_backend< std::thread, detail::owning_tag >
 basic_thread_backend ()=default
 
 basic_thread_backend (std::thread &t)
 
 basic_thread_backend (std::thread &t, native_thread_id tid)
 
virtual ~basic_thread_backend ()=default
 
void join ()
 
void detach ()
 
auto joinable () const noexcept -> bool
 
auto get_id () const noexcept -> id
 
auto native_handle () noexcept -> native_handle_type
 
auto set_name (std::string const &name) -> expected< void, std::error_code >
 
auto get_name () const -> expected< std::string, std::error_code >
 
auto set_priority (native_thread_priority priority) -> expected< void, std::error_code >
 
auto set_scheduling_policy (native_scheduling_policy policy, native_thread_priority priority) -> expected< void, std::error_code >
 
auto configure (native_scheduling_config const &config) -> expected< void, std::error_code >
 
auto configure (native_thread_config const &config) -> expected< void, std::error_code >
 
auto set_nice_value (int nice_value) -> expected< void, std::error_code >
 
auto get_nice_value () const -> expected< int, std::error_code >
 
auto set_affinity (native_thread_affinity const &affinity) -> expected< void, std::error_code >
 
auto get_affinity () const -> expected< native_thread_affinity, std::error_code >
 
auto native_id () const noexcept -> native_thread_id
 

Additional Inherited Members

- Public Types inherited from threadschedule::detail::basic_thread_backend< std::thread, detail::owning_tag >
using native_handle_type = typename ThreadType::native_handle_type
 
using id = typename ThreadType::id
 
- Static Public Member Functions inherited from threadschedule::detail::thread_backend
template<typename F , typename... Args>
static auto create_with_config (std::string const &name, native_scheduling_policy policy, native_thread_priority priority, F &&f, Args &&... args) -> thread_backend
 
template<typename F , typename... Args>
static auto create_with_config (native_thread_config const &config, F &&f, Args &&... args) -> thread_backend
 
- Protected Member Functions inherited from threadschedule::detail::basic_thread_backend< std::thread, detail::owning_tag >
void set_native_id (native_thread_id tid) noexcept
 
- Static Protected Member Functions inherited from threadschedule::detail::basic_thread_backend< std::thread, detail::owning_tag >
static auto no_such_thread () -> unexpected< std::error_code >
 
- Protected Attributes inherited from threadschedule::detail::basic_thread_backend< std::thread, detail::owning_tag >
native_thread_id native_id_
 

Detailed Description

thread_backend with automatic registration in the global thread_registry_backend.

Non-copyable, movable. On thread start the spawned thread auto-registers itself in the global registry() (via an auto_register_current_thread RAII guard) and auto-unregisters when the thread function returns. The name and component arguments are forwarded to the registry entry.

Definition at line 31 of file registered_thread_backend.hpp.

Constructor & Destructor Documentation

◆ registered_thread_backend() [1/4]

threadschedule::detail::registered_thread_backend::registered_thread_backend ( )
default

◆ registered_thread_backend() [2/4]

threadschedule::detail::registered_thread_backend::registered_thread_backend ( registered_thread_backend &&  )
defaultnoexcept

◆ registered_thread_backend() [3/4]

threadschedule::detail::registered_thread_backend::registered_thread_backend ( registered_thread_backend const &  )
delete

◆ registered_thread_backend() [4/4]

template<typename F , typename... Args>
threadschedule::detail::registered_thread_backend::registered_thread_backend ( std::string  name,
std::string  component,
F &&  f,
Args &&...  args 
)
inlineexplicit

Definition at line 43 of file registered_thread_backend.hpp.

Member Function Documentation

◆ operator=() [1/2]

auto threadschedule::detail::registered_thread_backend::operator= ( registered_thread_backend &&  ) -> registered_thread_backend &=default
defaultnoexcept

◆ operator=() [2/2]

auto threadschedule::detail::registered_thread_backend::operator= ( registered_thread_backend const &  ) -> registered_thread_backend &=delete
delete

The documentation for this class was generated from the following file: