ThreadSchedule
3.0.0
Modern C++ thread management library
Loading...
Searching...
No Matches
registered_thread_backend.hpp
Go to the documentation of this file.
1
#pragma once
2
8
#include "../../thread_registry.hpp"
9
#include "../thread_backend.hpp"
10
#include <functional>
11
#include <string>
12
#include <type_traits>
13
#include <utility>
14
15
namespace
threadschedule
16
{
17
18
namespace
detail
19
{
20
31
class
registered_thread_backend
:
public
thread_backend
32
{
33
public
:
34
registered_thread_backend
() =
default
;
35
36
registered_thread_backend
(
registered_thread_backend
&&) noexcept = default;
37
auto operator=(
registered_thread_backend
&&) noexcept ->
registered_thread_backend
& = default;
38
39
registered_thread_backend
(
registered_thread_backend
const&) = delete;
40
auto operator=(
registered_thread_backend
const&) ->
registered_thread_backend
& = delete;
41
42
template <typename F, typename... Args>
43
explicit
registered_thread_backend
(
std
::
string
name,
std
::
string
component, F&& f, Args&&... args)
44
:
thread_backend
(
45
[n =
std
::move(name), c =
std
::move(component), func =
std
::forward<F>(f)](auto&&... inner) mutable
46
{
47
auto_register_current_thread
guard(n, c);
48
std::invoke(func, std::forward<
decltype
(inner)>(inner)...);
49
},
50
std::forward<Args>(args)...)
51
{
52
}
53
};
54
55
}
// namespace detail
56
57
}
// namespace threadschedule
threadschedule::auto_register_current_thread
RAII registration of the calling thread in a portable registry.
Definition
thread_registry.hpp:426
threadschedule::detail::registered_thread_backend
thread_backend with automatic registration in the global thread_registry_backend.
Definition
registered_thread_backend.hpp:32
threadschedule::detail::registered_thread_backend::registered_thread_backend
registered_thread_backend()=default
threadschedule::detail::registered_thread_backend::registered_thread_backend
registered_thread_backend(registered_thread_backend &&) noexcept=default
threadschedule::detail::thread_backend
Owning wrapper around std::thread with RAII join-on-destroy semantics.
Definition
thread_backend.hpp:461
std
Definition
thread_id.hpp:101
threadschedule
Definition
cgroup.hpp:18
include
threadschedule
detail
registry
registered_thread_backend.hpp
Generated by
1.9.8