hpx/executors/thread_pool_scheduler.hpp#

Defined in header hpx/executors/thread_pool_scheduler.hpp.

See Public API for a list of names and headers that are part of the public HPX API.

namespace hpx
namespace execution
namespace experimental

Typedefs

using thread_pool_scheduler = thread_pool_policy_scheduler<hpx::launch>#

Functions

template<typename Tag, typename Policy, typename Property>
HPX_CXX_CORE_EXPORT auto tag_invoke(Tag tag, thread_pool_policy_scheduler<Policy> const &scheduler, Property &&prop) -> decltype(std::declval<thread_pool_policy_scheduler<Policy>>().policy(std::declval<Tag>()(std::declval<Policy>(), std::declval<Property>())), thread_pool_policy_scheduler<Policy>())#
template<typename Tag, typename Policy>
HPX_CXX_CORE_EXPORT auto tag_invoke(Tag tag, thread_pool_policy_scheduler<Policy> const &scheduler) -> decltype(std::declval<Tag>()(std::declval<Policy>()))#

Variables

template<typename Sender> HPX_CXX_CORE_EXPORT concept bulk_chunked_or_unchunked_sender  =sender_invokes_algorithm_v<Sender,hpx::execution::experimental::bulk_t> ||sender_invokes_algorithm_v<Sender,hpx::execution::experimental::bulk_chunked_t> ||sender_invokes_algorithm_v<Sender,hpx::execution::experimental::bulk_unchunked_t>
template<typename Policy> constexpr HPX_CXX_CORE_EXPORT bool is_sequenced_policy_v   = false
template<>
constexpr bool is_sequenced_policy_v<sequenced_policy> = true#
template<>
constexpr bool is_sequenced_policy_v<unsequenced_policy> = true#
template<typename Policy> constexpr HPX_CXX_CORE_EXPORT bool is_unsequenced_bulk_policy_v   = false
template<>
constexpr bool is_unsequenced_bulk_policy_v<unsequenced_policy> = true#
template<>
constexpr bool is_unsequenced_bulk_policy_v<parallel_unsequenced_policy> = true#
template<typename Policy>
struct thread_pool_domain : public sync_wait_domain#

Public Functions

template<bulk_chunked_or_unchunked_sender Sender, typename Env> inline requires constexpr std::same_as< std::decay_t< decltype(hpx::execution::experimental::get_scheduler(std::declval< Env const  & >)))>, thread_pool_policy_scheduler< Policy > > auto transform_sender (hpx::execution::experimental::set_value_t, Sender &&sndr, Env const &env) const noexcept
template<typename Policy>
struct thread_pool_policy_scheduler#

Public Types

using policy_type = Policy#
using execution_category = std::conditional_t<std::is_same_v<Policy, launch::sync_policy>, sequenced_execution_tag, parallel_execution_tag>#

Public Functions

inline explicit constexpr thread_pool_policy_scheduler(Policy l = experimental::detail::get_default_scheduler_policy<Policy>::call())#
inline explicit thread_pool_policy_scheduler(hpx::threads::thread_pool_base *pool, Policy l = experimental::detail::get_default_scheduler_policy<Policy>::call()) noexcept#