struct shared_data::thread_function_helper
Declaration
template <typename F, typename S, typename Tuple>
struct shared_data::thread_function_helper { /* full declaration omitted */ };Description
This struct implements the main work loop for a single parallel for loop. The indirection through this struct is done to allow passing the original template parameters F, S, and Tuple (additional arguments packed into a tuple) given to bulk_sync_execute without wrapping it into pika::function or similar.
Declared at: libs/pika/executors/include/pika/executors/fork_join_executor.hpp:362
Method Overview
- public static void call_dynamic(pika::execution::experimental::fork_join_executor::shared_data::region_data_type & rdata, std::size_t thread_index, std::size_t num_threads, pika::execution::experimental::fork_join_executor::shared_data::queues_type & queues, pika::lcos::local::spinlock & exception_mutex, std::exception_ptr & exception) noexcept
- public static void call_static(pika::execution::experimental::fork_join_executor::shared_data::region_data_type & rdata, std::size_t thread_index, std::size_t num_threads, pika::execution::experimental::fork_join_executor::shared_data::queues_type &, pika::lcos::local::spinlock & exception_mutex, std::exception_ptr & exception) noexcept
- public template <std::size_t... Is_, typename F_, typename A_, typename Tuple_>static constexpr void invoke_helper(pika::util::index_pack<Is_...>, F_ && f, A_ && a, Tuple_ && t)
- public static void set_state(std::atomic<thread_state> & tstate, pika::execution::experimental::fork_join_executor::shared_data::thread_state state) noexcept
Methods
static void call_dynamic(
pika::execution::experimental::
fork_join_executor::shared_data::
region_data_type& rdata,
std::size_t thread_index,
std::size_t num_threads,
pika::execution::experimental::
fork_join_executor::shared_data::
queues_type& queues,
pika::lcos::local::spinlock& exception_mutex,
std::exception_ptr& exception) noexcept
static void call_dynamic(
pika::execution::experimental::
fork_join_executor::shared_data::
region_data_type& rdata,
std::size_t thread_index,
std::size_t num_threads,
pika::execution::experimental::
fork_join_executor::shared_data::
queues_type& queues,
pika::lcos::local::spinlock& exception_mutex,
std::exception_ptr& exception) noexceptDescription
Main entry point for a single parallel region (dynamic scheduling).
Declared at: libs/pika/executors/include/pika/executors/fork_join_executor.hpp:434
Parameters
- pika::execution::experimental:: fork_join_executor::shared_data:: region_data_type& rdata
- std::size_t thread_index
- std::size_t num_threads
- pika::execution::experimental:: fork_join_executor::shared_data::queues_type& queues
- pika::lcos::local::spinlock& exception_mutex
- std::exception_ptr& exception
static void call_static(
pika::execution::experimental::
fork_join_executor::shared_data::
region_data_type& rdata,
std::size_t thread_index,
std::size_t num_threads,
pika::execution::experimental::
fork_join_executor::shared_data::
queues_type&,
pika::lcos::local::spinlock& exception_mutex,
std::exception_ptr& exception) noexcept
static void call_static(
pika::execution::experimental::
fork_join_executor::shared_data::
region_data_type& rdata,
std::size_t thread_index,
std::size_t num_threads,
pika::execution::experimental::
fork_join_executor::shared_data::
queues_type&,
pika::lcos::local::spinlock& exception_mutex,
std::exception_ptr& exception) noexceptDescription
Main entry point for a single parallel region (static scheduling).
Declared at: libs/pika/executors/include/pika/executors/fork_join_executor.hpp:385
Parameters
- pika::execution::experimental:: fork_join_executor::shared_data:: region_data_type& rdata
- std::size_t thread_index
- std::size_t num_threads
- pika::execution::experimental:: fork_join_executor::shared_data::queues_type&
- pika::lcos::local::spinlock& exception_mutex
- std::exception_ptr& exception
template <std::size_t... Is_,
typename F_,
typename A_,
typename Tuple_>
static constexpr void invoke_helper(
pika::util::index_pack<Is_...>,
F_&& f,
A_&& a,
Tuple_&& t)
template <std::size_t... Is_,
typename F_,
typename A_,
typename Tuple_>
static constexpr void invoke_helper(
pika::util::index_pack<Is_...>,
F_&& f,
A_&& a,
Tuple_&& t)Declared at: libs/pika/executors/include/pika/executors/fork_join_executor.hpp:370
Parameters
- pika::util::index_pack<Is_...>
- F_&& f
- A_&& a
- Tuple_&& t
static void set_state(
std::atomic<thread_state>& tstate,
pika::execution::experimental::
fork_join_executor::shared_data::
thread_state state) noexcept
static void set_state(
std::atomic<thread_state>& tstate,
pika::execution::experimental::
fork_join_executor::shared_data::
thread_state state) noexceptDeclared at: libs/pika/executors/include/pika/executors/fork_join_executor.hpp:377
Parameters
- std::atomic<thread_state>& tstate
- pika::execution::experimental:: fork_join_executor::shared_data::thread_state state