class scheduled_thread_pool

Declaration

template <typename Scheduler>
class scheduled_thread_pool : public thread_pool_base { /* full declaration omitted */ };

Description

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

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:44

Inherits from: thread_pool_base

Member Variables

Inherited from thread_pool_base:

protected id_
protected thread_offset_
protected affinity_data_
protected timestamp_scale_
protected notifier_

Method Overview

Inherited from thread_pool_base:

Methods

void abort_all_suspended_threads()

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:87

void add_processing_unit_internal(
    std::size_t virt_core,
    std::size_t thread_num,
    std::shared_ptr<
        pika::concurrency::detail::barrier>
        startup,
    pika::error_code& ec = pika::throws)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:289

Parameters

std::size_t virt_core
std::size_t thread_num
std::shared_ptr< pika::concurrency::detail::barrier> startup
pika::error_code& ec = pika::throws

bool cleanup_terminated(bool delete_all)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:92

Parameters

bool delete_all

void create_thread(
    pika::threads::thread_init_data& data,
    pika::threads::thread_id_ref_type& id,
    pika::error_code& ec)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:74

Parameters

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

pika::threads::thread_id_ref_type create_work(
    pika::threads::thread_init_data& data,
    pika::error_code& ec)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:77

Parameters

pika::threads::thread_init_data& data
pika::error_code& ec

void do_some_work(std::size_t num_thread)

Description

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

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:69

Parameters

std::size_t num_thread

bool enumerate_threads(
    const util::function<bool(thread_id_type)>& f,
    pika::threads::thread_schedule_state state)
    const

Description

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

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:113

Parameters

const util::function<bool(thread_id_type)>& f
pika::threads::thread_schedule_state state

std::size_t get_active_os_thread_count() const

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:163

std::int64_t get_background_thread_count()

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:108

std::int64_t get_busy_loop_count(std::size_t num,
                                 bool reset)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:278

Parameters

std::size_t num
bool reset

std::int64_t get_cumulative_duration(std::size_t,
                                     bool)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:251

Parameters

std::size_t
bool

std::int64_t get_executed_thread_phases(
    std::size_t,
    bool)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:240

Parameters

std::size_t
bool

std::int64_t get_executed_threads() const

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:236

std::int64_t get_executed_threads(std::size_t,
                                  bool)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:239

Parameters

std::size_t
bool

std::int64_t get_idle_core_count() const

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:104

void get_idle_core_mask(
    pika::threads::detail::mask_type&) const

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:106

Parameters

pika::threads::detail::mask_type&

std::int64_t get_idle_loop_count(std::size_t num,
                                 bool reset)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:277

Parameters

std::size_t num
bool reset

std::size_t get_os_thread_count() const

Description

\condNOINTERNAL

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:158

std::thread& get_os_thread_handle(
    std::size_t global_thread_num)

Description

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

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:146

Parameters

std::size_t global_thread_num

std::int64_t get_queue_length(
    std::size_t num_thread,
    bool)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:216

Parameters

std::size_t num_thread
bool

threads::policies::scheduler_base* get_scheduler()
    const

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:54

std::int64_t get_scheduler_utilization() const

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:279

pika::state get_state() const

Description

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

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:60

pika::state get_state(
    std::size_t num_thread) const

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:61

Parameters

std::size_t num_thread

std::int64_t get_thread_count(
    pika::threads::thread_schedule_state state,
    pika::threads::thread_priority priority,
    std::size_t num,
    bool reset)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:97

Parameters

pika::threads::thread_schedule_state state
pika::threads::thread_priority priority
std::size_t num
bool reset

bool has_reached_state(pika::state s) const

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:63

Parameters

pika::state s

void init_perf_counter_data(
    std::size_t pool_threads)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:301

Parameters

std::size_t pool_threads

bool is_busy()

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:134

bool is_idle()

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:135

void print_pool(std::ostream& os)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:52

Parameters

std::ostream& os

void remove_processing_unit_internal(
    std::size_t virt_core,
    pika::error_code& = pika::throws)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:287

Parameters

std::size_t virt_core
pika::error_code& = pika::throws

void report_error(std::size_t num,
                  const std::exception_ptr& e)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:84

Parameters

std::size_t num
const std::exception_ptr& e

void reset_thread_distribution()

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:119

void resume_direct(pika::error_code& ec = throws)

Description

Resumes the thread pool. Blocks until all OS threads on the thread pool have been resumed.

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:138

Parameters

pika::error_code& ec = throws
[in,out] this represents the error status on exit, if this is pre-initialized to \athe function will throw on error instead.

void resume_internal(bool blocking,
                     pika::error_code& ec)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:284

Parameters

bool blocking
pika::error_code& ec

void resume_processing_unit_direct(
    std::size_t virt_core,
    pika::error_code& = pika::throws)

Description

Resumes the given processing unit. Blocks until the processing unit has been resumed.

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:142

Parameters

std::size_t virt_core
[in] The processing unit on the the pool to be resumed. The processing units are indexed starting from 0.
pika::error_code& = pika::throws

bool run(std::unique_lock<std::mutex>& l,
         std::size_t pool_threads)

Description

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

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:125

Parameters

std::unique_lock<std::mutex>& l
std::size_t pool_threads

scheduled_thread_pool<Scheduler>(
    std::unique_ptr<Scheduler> sched,
    const pika::threads::
        thread_pool_init_parameters& init)

Description

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

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:48

Parameters

std::unique_ptr<Scheduler> sched
const pika::threads::thread_pool_init_parameters& init

pika::threads::thread_state set_state(
    const pika::threads::thread_id_type& id,
    pika::threads::thread_schedule_state
        new_state,
    pika::threads::thread_restart_state
        new_state_ex,
    pika::threads::thread_priority priority,
    pika::error_code& ec)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:80

Parameters

const pika::threads::thread_id_type& id
pika::threads::thread_schedule_state new_state
pika::threads::thread_restart_state new_state_ex
pika::threads::thread_priority priority
pika::error_code& ec

void stop(std::unique_lock<std::mutex>& l,
          bool blocking = true)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:130

Parameters

std::unique_lock<std::mutex>& l
bool blocking = true

template <typename Lock>
void stop_locked(Lock& l, bool blocking = true)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:129

Parameters

Lock& l
bool blocking = true

void suspend_direct(pika::error_code& ec = throws)

Description

Suspends the thread pool. Blocks until all OS threads on the thread pool have been suspended.

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:137

Parameters

pika::error_code& ec = throws
[in,out] this represents the error status on exit, if this is pre-initialized to \athe function will throw on error instead.

void suspend_internal(pika::error_code& ec)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:285

Parameters

pika::error_code& ec

void suspend_processing_unit_direct(
    std::size_t virt_core,
    pika::error_code& = pika::throws)

Description

Suspends the given processing unit. Blocks until the processing unit has been suspended.

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:140

Parameters

std::size_t virt_core
[in] The processing unit on the the pool to be suspended. The processing units are indexed starting from 0.
pika::error_code& = pika::throws

void thread_func(
    std::size_t thread_num,
    std::size_t global_thread_num,
    std::shared_ptr<
        pika::concurrency::detail::barrier>
        startup)

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:155

Parameters

std::size_t thread_num
std::size_t global_thread_num
std::shared_ptr< pika::concurrency::detail::barrier> startup

void wait()

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:133

virtual ~scheduled_thread_pool<Scheduler>()

Declared at: libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool.hpp:50