class thread_queue_mc
Declaration
class thread_queue_mc { /* full declaration omitted */ };Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:53
Member Variables
- public pika::threads::policies:: thread_queue_init_parameters parameters_
- public const int queue_index_
- public queue_holder_thread< pika::threads::policies::thread_queue_mc:: thread_queue_type>* holder_
- public pika::threads::policies::thread_queue_mc:: task_items_type new_task_items_
- public pika::threads::policies::thread_queue_mc:: work_items_type work_items_
- public pika::concurrency::detail::cache_line_data< std::atomic<std::int32_t>> new_tasks_count_
- public pika::concurrency::detail::cache_line_data< std::atomic<std::int32_t>> work_items_count_
Method Overview
- public std::size_t add_new(std::int64_t add_count, pika::threads::policies::thread_queue_mc::thread_queue_type * addfrom, bool stealing)
- public void create_thread(pika::threads::thread_init_data & data, pika::threads::thread_id_ref_type * id, pika::error_code & ec)
- public bool get_next_thread(threads::thread_id_ref_type & thrd, bool other_end, bool check_new = false)
- public std::int64_t get_queue_length() const
- public std::int64_t get_queue_length_pending() const
- public std::int64_t get_queue_length_staged(std::memory_order order = std::memory_order_relaxed) const
- public std::int64_t get_thread_count() const
- public void on_error(std::size_t, const std::exception_ptr &)
- public void on_start_thread(std::size_t)
- public void on_stop_thread(std::size_t)
- public void schedule_work(threads::thread_id_ref_type thrd, bool other_end)
- public void set_holder(queue_holder_thread<pika::threads::policies::thread_queue_mc::thread_queue_type> * holder)
- public thread_queue_mc(const pika::threads::policies::thread_queue_init_parameters & parameters, std::size_t queue_num = unsigned long(-1))
- public ~thread_queue_mc()
Methods
std::size_t add_new(
std::int64_t add_count,
pika::threads::policies::thread_queue_mc::
thread_queue_type* addfrom,
bool stealing)
std::size_t add_new(
std::int64_t add_count,
pika::threads::policies::thread_queue_mc::
thread_queue_type* addfrom,
bool stealing)Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:80
Parameters
- std::int64_t add_count
- pika::threads::policies::thread_queue_mc:: thread_queue_type* addfrom
- bool stealing
void create_thread(
pika::threads::thread_init_data& data,
pika::threads::thread_id_ref_type* id,
pika::error_code& ec)
void create_thread(
pika::threads::thread_init_data& data,
pika::threads::thread_id_ref_type* id,
pika::error_code& ec)Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:184
Parameters
bool get_next_thread(
threads::thread_id_ref_type& thrd,
bool other_end,
bool check_new = false)
bool get_next_thread(
threads::thread_id_ref_type& thrd,
bool other_end,
bool check_new = false)Description
Return the next thread to be executed, return false if none is available
Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:251
Parameters
- threads::thread_id_ref_type& thrd
- bool other_end
- bool check_new = false
std::int64_t get_queue_length() const
std::int64_t get_queue_length() constDeclared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:152
std::int64_t get_queue_length_pending() const
std::int64_t get_queue_length_pending() constDeclared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:160
std::int64_t get_queue_length_staged(
std::memory_order order =
std::memory_order_relaxed) const
std::int64_t get_queue_length_staged(
std::memory_order order =
std::memory_order_relaxed) constDeclared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:167
Parameters
- std::memory_order order = std::memory_order_relaxed
std::int64_t get_thread_count() const
std::int64_t get_thread_count() constDeclared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:175
void on_error(std::size_t,
const std::exception_ptr&)
void on_error(std::size_t,
const std::exception_ptr&)Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:304
Parameters
- std::size_t
- const std::exception_ptr&
void on_start_thread(std::size_t)
void on_start_thread(std::size_t)Description
////////////////////////////////////////////////////////////////////
Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:302
Parameters
void on_stop_thread(std::size_t)
void on_stop_thread(std::size_t)Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:303
Parameters
void schedule_work(
threads::thread_id_ref_type thrd,
bool other_end)
void schedule_work(
threads::thread_id_ref_type thrd,
bool other_end)Description
Schedule the passed thread (put it on the ready work queue)
Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:285
Parameters
- threads::thread_id_ref_type thrd
- bool other_end
void set_holder(
queue_holder_thread<
pika::threads::policies::thread_queue_mc::
thread_queue_type>* holder)
void set_holder(
queue_holder_thread<
pika::threads::policies::thread_queue_mc::
thread_queue_type>* holder)Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:139
Parameters
- queue_holder_thread< pika::threads::policies::thread_queue_mc:: thread_queue_type>* holder
thread_queue_mc(
const pika::threads::policies::
thread_queue_init_parameters& parameters,
std::size_t queue_num = unsigned long(-1))
thread_queue_mc(
const pika::threads::policies::
thread_queue_init_parameters& parameters,
std::size_t queue_num = unsigned long(-1))Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:126
Parameters
- const pika::threads::policies:: thread_queue_init_parameters& parameters
- std::size_t queue_num = unsigned long(-1)
~thread_queue_mc()
~thread_queue_mc()Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:148