libjmmcg
build_2783
A C++ library containing an eclectic mix of useful, advanced components.
|
#include <thread_work_closure.hpp>
Public Types | |
typedef thread_wk_base< OST, CFG > | base_t |
typedef base_t::os_traits | os_traits |
typedef base_t::lock_traits | lock_traits |
typedef base_t::work_complete_t | work_complete_t |
typedef sp_counter_type< long, typename base_t::lock_traits, Del, AtCtr > | counter_type |
typedef counter_type::atomic_ctr_t | atomic_ctr_t |
typedef counter_type::deleter_t | deleter_t |
typedef lock_traits::template noop_atomic_ctr< typename atomic_ctr_t::value_type > | no_ref_counting |
typedef noop_dtor< typename deleter_t::element_type > | no_deletion |
Public Types inherited from jmmcg::ppd::private_::closure::thread_wk_base< OST, CFG > | |
typedef intrusive::node_details_itf< typename OST::lock_traits > | base_t |
typedef OST | os_traits |
typedef os_traits::lock_traits | lock_traits |
typedef input_t::cfg_type | cfg_type |
typedef input_t::cfg_details_type | cfg_details_type |
typedef lock::lockable_settable< lock_traits > | work_complete_t |
This atomic object is the object that is used to signal to a waiting future that the work has been completed. More... | |
Public Types inherited from jmmcg::intrusive::node_details_itf< OST::lock_traits > | |
using | base_t = sp_counter_itf_type< long > |
using | lock_traits = OST::lock_traits |
using | atomic_ctr_t = base_t |
using | atomic_ptr_t = typename lock_traits::template atomic< node_details_itf * > |
Public Types inherited from jmmcg::sp_counter_itf_type< long > | |
typedef long | value_type |
typedef jmmcg::default_delete< sp_counter_itf_type > | deleter_t |
The default deletion method for objects that inherit from this intrusively-counted type, which is just heap-deletion, if the objects are heap-allocated. More... | |
Public Types inherited from jmmcg::sp_counter_type< long, thread_wk_base< OST, CFG >::lock_traits, Del, AtCtr > | |
using | base_t = sp_counter_itf_type< long > |
using | value_type = typename base_t::value_type |
using | atomic_ctr_t = AtCtr< value_type > |
using | lock_traits = thread_wk_base< OST, CFG >::lock_traits |
typedef Del< sp_counter_type > | deleter_t |
Make sure the correct object deletion mechanism is used. More... | |
Public Member Functions | |
constexpr generic_traits::return_data __fastcall | result_traits () const noexcept(true) override FORCE_INLINE |
virtual const os_traits::thread_exception &__fastcall | exception_thrown_in_thread () const noexcept(true)=0 |
virtual void | throw_any_exception () const noexcept(false)=0 |
tstring __fastcall | to_string () const noexcept(false) override FORCE_INLINE |
Public Member Functions inherited from jmmcg::ppd::private_::closure::thread_wk_base< OST, CFG > | |
thread_wk_base (thread_wk_base const &)=delete | |
virtual | ~thread_wk_base () noexcept(true) FORCE_INLINE |
virtual bool __fastcall | operator< (thread_wk_base const &) const noexcept(true)=0 |
The default ordering of core_work in the pool_aspect::work_queue_type is based upon the weak order of the work to be mutated. More... | |
bool __fastcall | operator== (thread_wk_base const &ctw) const noexcept(true) FORCE_INLINE |
virtual void | update_edge (typename cfg_type::node_property_t::value_type const e_details) noexcept(false)=0 |
virtual void __fastcall | process_joinable (typename cfg_type::node_property_t::value_type const e_details) noexcept(false)=0 |
virtual void __fastcall | process_nonjoinable (typename cfg_type::node_property_t::value_type const e_details) noexcept(false)=0 |
virtual work_complete_t *__fastcall | work_complete () noexcept(true) FORCE_INLINE |
Public Member Functions inherited from jmmcg::intrusive::node_details_itf< OST::lock_traits > | |
virtual | ~node_details_itf () noexcept(true) FORCE_INLINE |
Public Member Functions inherited from jmmcg::sp_counter_itf_type< long > | |
virtual | ~sp_counter_itf_type () |
virtual value_type | sp_count () const noexcept(true) |
virtual value_type | sp_acquire () noexcept(true) |
virtual bool | sp_release () noexcept(true) |
virtual bool | sp_noop_ctr () const noexcept(true) |
virtual bool __fastcall | operator< (const value_type) const noexcept(true) |
virtual bool __fastcall | operator> (const value_type) const noexcept(true) |
virtual bool __fastcall | operator>= (const value_type) const noexcept(true) |
constexpr bool FORCE_INLINE | operator== (const value_type v) const noexcept(true) |
virtual void | deleter () |
Call the correct deleter_t object to delete the object. More... | |
virtual tstring | sp_to_string () const noexcept(false) |
Public Member Functions inherited from jmmcg::sp_counter_type< long, thread_wk_base< OST, CFG >::lock_traits, Del, AtCtr > | |
virtual | ~sp_counter_type () noexcept(true)=default |
void | deleter () override |
Call the correct deleter_t object to delete the object. More... | |
value_type | sp_count () const noexcept(true) override final |
atomic_ctr_t::value_type | sp_acquire () noexcept(true) override final |
bool | sp_release () noexcept(true) override final |
bool __fastcall | operator< (const value_type v) const noexcept(true) override |
bool __fastcall | operator> (const value_type v) const noexcept(true) override |
bool __fastcall | operator>= (const value_type v) const noexcept(true) override final |
tstring | sp_to_string () const noexcept(false) override final |
Static Public Attributes | |
static constexpr generic_traits::return_data | result_traits_ =generic_traits::return_data::joinable |
static constexpr ppd::generic_traits::memory_access_modes | memory_access_mode |
Static Public Attributes inherited from jmmcg::sp_counter_itf_type< long > | |
static constexpr ppd::generic_traits::memory_access_modes | memory_access_mode |
Static Public Attributes inherited from jmmcg::sp_counter_type< long, thread_wk_base< OST, CFG >::lock_traits, Del, AtCtr > | |
static constexpr ppd::generic_traits::memory_access_modes | memory_access_mode |
Protected Member Functions | |
~thread_wk_async_t () noexcept(true) FORCE_INLINE | |
Protected Member Functions inherited from jmmcg::ppd::private_::closure::thread_wk_base< OST, CFG > | |
constexpr | thread_wk_base () noexcept(true) FORCE_INLINE |
Protected Member Functions inherited from jmmcg::intrusive::node_details_itf< OST::lock_traits > | |
node_details_itf () noexcept(true) FORCE_INLINE | |
Protected Member Functions inherited from jmmcg::sp_counter_itf_type< long > | |
constexpr | sp_counter_itf_type () noexcept(true) |
Protected Member Functions inherited from jmmcg::sp_counter_type< long, thread_wk_base< OST, CFG >::lock_traits, Del, AtCtr > | |
constexpr | sp_counter_type () noexcept(true) |
Additional Inherited Members | |
Public Attributes inherited from jmmcg::intrusive::node_details_itf< OST::lock_traits > | |
atomic_ptr_t | next |
Definition at line 637 of file thread_work_closure.hpp.
typedef counter_type::atomic_ctr_t jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::atomic_ctr_t |
Definition at line 644 of file thread_work_closure.hpp.
typedef thread_wk_base<OST, CFG> jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::base_t |
Definition at line 639 of file thread_work_closure.hpp.
typedef sp_counter_type<long, typename base_t::lock_traits, Del, AtCtr> jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::counter_type |
Definition at line 643 of file thread_work_closure.hpp.
typedef counter_type::deleter_t jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::deleter_t |
Definition at line 645 of file thread_work_closure.hpp.
typedef base_t::lock_traits jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::lock_traits |
Definition at line 641 of file thread_work_closure.hpp.
typedef noop_dtor<typename deleter_t::element_type> jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::no_deletion |
Definition at line 647 of file thread_work_closure.hpp.
typedef lock_traits::template noop_atomic_ctr<typename atomic_ctr_t::value_type> jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::no_ref_counting |
Definition at line 646 of file thread_work_closure.hpp.
typedef base_t::os_traits jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::os_traits |
Definition at line 640 of file thread_work_closure.hpp.
typedef base_t::work_complete_t jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::work_complete_t |
Definition at line 642 of file thread_work_closure.hpp.
|
inlineprotectednoexcept |
Definition at line 673 of file thread_work_closure.hpp.
|
pure virtualnoexcept |
|
inlineconstexproverridevirtualnoexcept |
Implements jmmcg::ppd::private_::closure::thread_wk_base< OST, CFG >.
Definition at line 662 of file thread_work_closure.hpp.
|
pure virtualnoexcept |
|
inlineoverridevirtualnoexcept |
Implements jmmcg::ppd::private_::closure::thread_wk_base< OST, CFG >.
Reimplemented in jmmcg::ppd::private_::closure::algo_thread_wk< OST, ThrW, WFlg, Del, AtCtr, CFG >, jmmcg::ppd::private_::closure::thread_wk< generic_traits::return_data::joinable, OST, ThrW, WFlg, Del, AtCtr, CFG >, and jmmcg::ppd::private_::closure::algo_thread_wk_buffered< OST, ThrW, WFlg, SubDivAlgWk, Del, AtCtr, CFG >.
Definition at line 668 of file thread_work_closure.hpp.
|
staticconstexpr |
To assist in allowing compile-time computation of the algorithmic order of the threading model.
Definition at line 653 of file thread_work_closure.hpp.
|
staticconstexpr |
Definition at line 648 of file thread_work_closure.hpp.