30 wrapper<API, Mdl, TWC>::
wrapper(
const typename thread_traits::api_params_type::suspend_period_ms ew)
noexcept(
false)
35 wrapper<API, Mdl, TWC>::
wrapper(thread_context_t &&thread_context,
const typename thread_traits::api_params_type::suspend_period_ms ew)
noexcept(
false)
41 : base_t(tb),
exit_requested(
false), thread_context_(tb.thread_context_) {
46 return exit_requested;
51 thread_context_t obj(
std::move(thread_context_));
52 while (!
this->pre_exit() && !
this->worker_fn(obj));
53 return thread_traits::api_params_type::no_kernel_thread;
58 this->exit_requested=
true;
59 base_t::wait_thread_exit();
62 this->exception_thrown_in_thread.throw_if_set();
66 thread<API, Mdl>::
thread(
const typename thread_traits::api_params_type::suspend_period_ms ew)
noexcept(
false)
71 template<
class ProcFn>
inline
72 thread<API, Mdl>::
thread(ProcFn &&proc_fn,
const typename thread_traits::api_params_type::suspend_period_ms ew)
noexcept(
false)
73 : base_t(
std::forward<ProcFn>(proc_fn), ew) {
74 this->create_running();
78 thread<API, Mdl>::~
thread()
noexcept(
false) {
79 this->exit_requested=
true;
80 base_t::wait_thread_exit();
84 thread<API, Mdl>::worker_fn(thread_context_t &context)
noexcept(
false) {