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)

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)

Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:184

Parameters

pika::threads::thread_init_data& data
pika::threads::thread_id_ref_type* id
pika::error_code& ec

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

Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:152

std::int64_t get_queue_length_pending() const

Declared 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

Declared 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

Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:175

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)

Description

////////////////////////////////////////////////////////////////////

Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:302

Parameters

std::size_t

void on_stop_thread(std::size_t)

Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:303

Parameters

std::size_t

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)

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))

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()

Declared at: libs/pika/schedulers/include/pika/schedulers/thread_queue_mc.hpp:148