hpx/execution/executors/execution_information.hpp

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

namespace hpx
namespace parallel
namespace execution

Variables

hpx::parallel::execution::has_pending_closures_t has_pending_closures
hpx::parallel::execution::get_pu_mask_t get_pu_mask
hpx::parallel::execution::set_scheduler_mode_t set_scheduler_mode
struct get_pu_mask_t : public hpx::functional::detail::tag_fallback<get_pu_mask_t>
#include <execution_information.hpp>

Retrieve the bitmask describing the processing units the given thread is allowed to run on

All threads::executors invoke sched.get_pu_mask().

Note

If the executor does not support this operation, this call will always invoke hpx::threads::get_pu_mask()

Parameters
  • exec: [in] The executor object to use for querying the number of pending tasks.

  • topo: [in] The topology object to use to extract the requested information.

  • thream_num: [in] The sequence number of the thread to retrieve information for.

Private Functions

template<typename Executor>
decltype(auto) friend tag_fallback_invoke(get_pu_mask_t, Executor&&, threads::topology &topo, std::size_t thread_num)
template<typename Executor>
decltype(auto) friend tag_invoke(get_pu_mask_t, Executor &&exec, threads::topology &topo, std::size_t thread_num)
struct has_pending_closures_t : public hpx::functional::detail::tag_fallback<has_pending_closures_t>
#include <execution_information.hpp>

Retrieve whether this executor has operations pending or not.

Note

If the executor does not expose this information, this call will always return false

Parameters
  • exec: [in] The executor object to use to extract the requested information for.

Private Functions

template<typename Executor>
decltype(auto) friend tag_fallback_invoke(has_pending_closures_t, Executor&&)
template<typename Executor>
decltype(auto) friend tag_invoke(has_pending_closures_t, Executor &&exec)
struct set_scheduler_mode_t : public hpx::functional::detail::tag_fallback<set_scheduler_mode_t>
#include <execution_information.hpp>

Set various modes of operation on the scheduler underneath the given executor.

Note

This calls exec.set_scheduler_mode(mode) if it exists; otherwise it does nothing.

Parameters
  • exec: [in] The executor object to use.

  • mode: [in] The new mode for the scheduler to pick up

Friends

template<typename Executor, typename Mode>
void tag_fallback_invoke(set_scheduler_mode_t, Executor&&, Mode const&)
template<typename Executor, typename Mode>
void tag_invoke(set_scheduler_mode_t, Executor &&exec, Mode const &mode)