struct queue_holder_thread
Declaration
template <typename QueueType>
struct queue_holder_thread { /* full declaration omitted */ };Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:76
Member Variables
- public QueueType* const bp_queue_
- public QueueType* const hp_queue_
- public QueueType* const np_queue_
- public QueueType* const lp_queue_
- public const std::size_t domain_index_
- public const std::size_t queue_index_
- public const std::size_t thread_num_
- public const std::size_t owner_mask_
- public pika::concurrency::detail::cache_line_data< mutex_type> thread_map_mtx_
- public pika::threads::policies::queue_holder_thread:: thread_heap_type thread_heap_small_
- public pika::threads::policies::queue_holder_thread:: thread_heap_type thread_heap_medium_
- public pika::threads::policies::queue_holder_thread:: thread_heap_type thread_heap_large_
- public pika::threads::policies::queue_holder_thread:: thread_heap_type thread_heap_huge_
- public pika::threads::policies::queue_holder_thread:: thread_heap_type thread_heap_nostack_
- public pika::concurrency::detail::cache_line_data< std::tuple<std::size_t, std::size_t>> rollover_counters_
- public pika::threads::policies::queue_holder_thread:: thread_map_type thread_map_
- public pika::concurrency::detail::cache_line_data< std::atomic<std::int32_t>> thread_map_count_
- public pika::threads::policies::queue_holder_thread:: terminated_items_type terminated_items_
- public pika::concurrency::detail::cache_line_data< std::atomic<std::int32_t>> terminated_items_count_
- public pika::threads::policies:: thread_queue_init_parameters parameters_
- public std::thread::id owner_id_
- public static pika::detail::internal_allocator< threads::thread_data> thread_alloc_
Method Overview
- public void abort_all_suspended_threads()
- public std::size_t add_new(std::int64_t add_count, pika::threads::policies::queue_holder_thread::thread_holder_type * addfrom, bool stealing)
- public std::size_t add_new_HP(std::int64_t add_count, pika::threads::policies::queue_holder_thread::thread_holder_type * addfrom, bool stealing)
- public void add_to_thread_map(threads::thread_id_type tid)
- public bool cleanup_terminated(std::size_t thread_num, bool delete_all)
- public void create_thread(pika::threads::thread_init_data & data, pika::threads::thread_id_ref_type * tid, std::size_t thread_num, pika::error_code & ec)
- public void create_thread_object(threads::thread_id_ref_type & tid, threads::thread_init_data & data)
- public static void deallocate(threads::thread_data * p)
- public void debug_info()
- public void debug_queues(const char * prefix)
- public void destroy_thread(threads::thread_data * thrd, std::size_t thread_num, bool xthread)
- public bool enumerate_threads(const util::function<bool (thread_id_type)> & f, pika::threads::thread_schedule_state state = thread_schedule_state::unknown) const
- public bool get_next_thread(threads::thread_id_ref_type & thrd, bool stealing)
- public bool get_next_thread_HP(threads::thread_id_ref_type & thrd, bool stealing, bool check_new)
- public inline std::size_t get_queue_length()
- public inline std::size_t get_thread_count(pika::threads::thread_schedule_state state = thread_schedule_state::unknown, pika::threads::thread_priority priority = thread_priority::default_) const
- public inline std::size_t get_thread_count_pending(pika::threads::thread_priority priority) const
- public inline std::size_t get_thread_count_staged(pika::threads::thread_priority priority) const
- public inline bool owns_bp_queue() const
- public inline bool owns_hp_queue() const
- public inline bool owns_lp_queue() const
- public inline bool owns_np_queue() const
- public queue_holder_thread<QueueType>(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 pika::threads::policies::thread_queue_init_parameters & init, std::thread::id owner_id)
- public void recycle_thread(pika::threads::thread_id_type tid)
- public void remove_from_thread_map(threads::thread_id_type tid, bool dealloc)
- public void schedule_thread(threads::thread_id_ref_type thrd, pika::threads::thread_priority priority, bool other_end = false)
- public inline std::size_t worker_next(const std::size_t workers) const
- public ~queue_holder_thread<QueueType>()
Methods
void abort_all_suspended_threads()
void abort_all_suspended_threads()Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:930
std::size_t add_new(
std::int64_t add_count,
pika::threads::policies::queue_holder_thread::
thread_holder_type* addfrom,
bool stealing)
std::size_t add_new(
std::int64_t add_count,
pika::threads::policies::queue_holder_thread::
thread_holder_type* addfrom,
bool stealing)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:727
Parameters
- std::int64_t add_count
- pika::threads::policies::queue_holder_thread:: thread_holder_type* addfrom
- bool stealing
std::size_t add_new_HP(
std::int64_t add_count,
pika::threads::policies::queue_holder_thread::
thread_holder_type* addfrom,
bool stealing)
std::size_t add_new_HP(
std::int64_t add_count,
pika::threads::policies::queue_holder_thread::
thread_holder_type* addfrom,
bool stealing)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:704
Parameters
- std::int64_t add_count
- pika::threads::policies::queue_holder_thread:: thread_holder_type* addfrom
- bool stealing
void add_to_thread_map(
threads::thread_id_type tid)
void add_to_thread_map(
threads::thread_id_type tid)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:591
Parameters
bool cleanup_terminated(std::size_t thread_num,
bool delete_all)
bool cleanup_terminated(std::size_t thread_num,
bool delete_all)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:350
Parameters
- std::size_t thread_num
- bool delete_all
void create_thread(
pika::threads::thread_init_data& data,
pika::threads::thread_id_ref_type* tid,
std::size_t thread_num,
pika::error_code& ec)
void create_thread(
pika::threads::thread_init_data& data,
pika::threads::thread_id_ref_type* tid,
std::size_t thread_num,
pika::error_code& ec)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:413
Parameters
- pika::threads::thread_init_data& data
- pika::threads::thread_id_ref_type* tid
- std::size_t thread_num
- pika::error_code& ec
void create_thread_object(
threads::thread_id_ref_type& tid,
threads::thread_init_data& data)
void create_thread_object(
threads::thread_id_ref_type& tid,
threads::thread_init_data& data)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:473
Parameters
static void deallocate(threads::thread_data* p)
static void deallocate(threads::thread_data* p)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:583
Parameters
void debug_info()
void debug_info()Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:1003
void debug_queues(const char* prefix)
void debug_queues(const char* prefix)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:1027
Parameters
- const char* prefix
void destroy_thread(threads::thread_data* thrd,
std::size_t thread_num,
bool xthread)
void destroy_thread(threads::thread_data* thrd,
std::size_t thread_num,
bool xthread)Description
Destroy the passed thread as it has been terminated
Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:910
Parameters
- threads::thread_data* thrd
- std::size_t thread_num
- bool xthread
bool enumerate_threads(
const util::function<bool(thread_id_type)>& f,
pika::threads::thread_schedule_state state =
thread_schedule_state::unknown) const
bool enumerate_threads(
const util::function<bool(thread_id_type)>& f,
pika::threads::thread_schedule_state state =
thread_schedule_state::unknown) constDeclared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:951
Parameters
- const util::function<bool(thread_id_type)>& f
- pika::threads::thread_schedule_state state = thread_schedule_state::unknown
bool get_next_thread(
threads::thread_id_ref_type& thrd,
bool stealing)
bool get_next_thread(
threads::thread_id_ref_type& thrd,
bool stealing)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:678
Parameters
- threads::thread_id_ref_type& thrd
- bool stealing
bool get_next_thread_HP(
threads::thread_id_ref_type& thrd,
bool stealing,
bool check_new)
bool get_next_thread_HP(
threads::thread_id_ref_type& thrd,
bool stealing,
bool check_new)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:649
Parameters
- threads::thread_id_ref_type& thrd
- bool stealing
- bool check_new
inline std::size_t get_queue_length()
inline std::size_t get_queue_length()Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:758
inline std::size_t get_thread_count(
pika::threads::thread_schedule_state state =
thread_schedule_state::unknown,
pika::threads::thread_priority priority =
thread_priority::default_) const
inline std::size_t get_thread_count(
pika::threads::thread_schedule_state state =
thread_schedule_state::unknown,
pika::threads::thread_priority priority =
thread_priority::default_) constDeclared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:874
Parameters
- pika::threads::thread_schedule_state state = thread_schedule_state::unknown
- pika::threads::thread_priority priority = thread_priority::default_
inline std::size_t get_thread_count_pending(
pika::threads::thread_priority priority) const
inline std::size_t get_thread_count_pending(
pika::threads::thread_priority priority) constDeclared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:823
Parameters
- pika::threads::thread_priority priority
inline std::size_t get_thread_count_staged(
pika::threads::thread_priority priority) const
inline std::size_t get_thread_count_staged(
pika::threads::thread_priority priority) constDeclared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:770
Parameters
- pika::threads::thread_priority priority
inline bool owns_bp_queue() const
inline bool owns_bp_queue() constDeclared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:267
inline bool owns_hp_queue() const
inline bool owns_hp_queue() constDeclared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:273
inline bool owns_lp_queue() const
inline bool owns_lp_queue() constDeclared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:285
inline bool owns_np_queue() const
inline bool owns_np_queue() constDeclared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:279
queue_holder_thread<QueueType>(
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 pika::threads::policies::
thread_queue_init_parameters& init,
std::thread::id owner_id)
queue_holder_thread<QueueType>(
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 pika::threads::policies::
thread_queue_init_parameters& init,
std::thread::id owner_id)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:202
Parameters
- 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 pika::threads::policies:: thread_queue_init_parameters& init
- std::thread::id owner_id
void recycle_thread(
pika::threads::thread_id_type tid)
void recycle_thread(
pika::threads::thread_id_type tid)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:550
Parameters
void remove_from_thread_map(
threads::thread_id_type tid,
bool dealloc)
void remove_from_thread_map(
threads::thread_id_type tid,
bool dealloc)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:627
Parameters
- threads::thread_id_type tid
- bool dealloc
void schedule_thread(
threads::thread_id_ref_type thrd,
pika::threads::thread_priority priority,
bool other_end = false)
void schedule_thread(
threads::thread_id_ref_type thrd,
pika::threads::thread_priority priority,
bool other_end = false)Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:309
Parameters
- threads::thread_id_ref_type thrd
- pika::threads::thread_priority priority
- bool other_end = false
inline std::size_t worker_next(
const std::size_t workers) const
inline std::size_t worker_next(
const std::size_t workers) constDeclared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:293
Parameters
- const std::size_t workers
~queue_holder_thread<QueueType>()
~queue_holder_thread<QueueType>()Declared at: libs/pika/schedulers/include/pika/schedulers/queue_holder_thread.hpp:239