hpx/schedulers/queue_holder_thread.hpp¶
See Public API for a list of names and headers that are part of the public HPX API.
Defines
-
QUEUE_HOLDER_THREAD_DEBUG
¶
-
namespace
hpx
Functions
-
static hpx::debug::enable_print<QUEUE_HOLDER_THREAD_DEBUG> hpx::tq_deb("QH_THRD")
-
namespace
threads
-
namespace
policies
Enums
-
template<typename
QueueType
>
structqueue_holder_thread
¶ Public Types
-
template<>
usingthread_holder_type
= queue_holder_thread<QueueType>¶
-
template<>
usingthread_heap_type
= std::list<thread_id_type, util::internal_allocator<thread_id_type>>¶
-
template<>
usingtask_description
= thread_init_data¶
-
template<>
usingthread_map_type
= std::unordered_set<thread_id_type, std::hash<thread_id_type>, std::equal_to<thread_id_type>, util::internal_allocator<thread_id_type>>¶
-
template<>
usingterminated_items_type
= lockfree_fifo::apply<thread_data*>::type¶
Public Functions
-
queue_holder_thread
(QueueType *bp_queue, QueueType *hp_queue, QueueType *np_queue, QueueType *lp_queue, std::size_t domain, std::size_t queue, std::size_t thread_num, std::size_t owner, const thread_queue_init_parameters &init)¶
-
~queue_holder_thread
()¶
-
bool
owns_bp_queue
() const¶
-
bool
owns_hp_queue
() const¶
-
bool
owns_np_queue
() const¶
-
bool
owns_lp_queue
() const¶
-
void
schedule_thread
(threads::thread_id_ref_type thrd, thread_priority priority, bool other_end = false)¶
-
void
create_thread
(thread_init_data &data, thread_id_ref_type *tid, std::size_t thread_num, error_code &ec)¶
-
void
create_thread_object
(threads::thread_id_ref_type &tid, threads::thread_init_data &data)¶
-
void
recycle_thread
(thread_id_type tid)¶
-
bool
get_next_thread_HP
(threads::thread_id_ref_type &thrd, bool stealing, bool check_new)¶
-
bool
get_next_thread
(threads::thread_id_ref_type &thrd, bool stealing)¶
-
std::size_t
get_thread_count_staged
(thread_priority priority) const¶
-
std::size_t
get_thread_count_pending
(thread_priority priority) const¶
-
std::size_t
get_thread_count
(thread_schedule_state state = thread_schedule_state::unknown, thread_priority priority = thread_priority::default_) const¶
-
void
destroy_thread
(threads::thread_data *thrd, std::size_t thread_num, bool xthread)¶ Destroy the passed thread as it has been terminated.
-
void
abort_all_suspended_threads
()¶
-
bool
enumerate_threads
(hpx::function<bool(thread_id_type)> const &f, thread_schedule_state state = thread_schedule_state::unknown, ) const¶
-
void
debug_info
()¶
-
void
debug_queues
(const char *prefix)¶
Public Members
-
QueueType *const
bp_queue_
¶
-
QueueType *const
hp_queue_
¶
-
QueueType *const
np_queue_
¶
-
QueueType *const
lp_queue_
¶
-
util::cache_line_data<mutex_type>
thread_map_mtx_
¶
-
thread_heap_type
thread_heap_small_
¶
-
thread_heap_type
thread_heap_medium_
¶
-
thread_heap_type
thread_heap_large_
¶
-
thread_heap_type
thread_heap_huge_
¶
-
thread_heap_type
thread_heap_nostack_
¶
-
thread_map_type
thread_map_
¶
-
util::cache_line_data<std::atomic<std::int32_t>>
thread_map_count_
¶
-
terminated_items_type
terminated_items_
¶
-
util::cache_line_data<std::atomic<std::int32_t>>
terminated_items_count_
¶
-
thread_queue_init_parameters
parameters_
¶
Public Static Functions
-
static void
deallocate
(threads::thread_data *p)¶
Public Static Attributes
-
util::internal_allocator<threads::thread_data>
thread_alloc_
¶
-
template<>
-
template<typename
-
namespace
-