hpx/components_base/server/migration_support.hpp¶
See Public API for a list of names and headers that are part of the public HPX API.
-
namespace
hpx
-
namespace
components
-
template<typename
BaseComponent
, typenameMutex
= hpx::spinlock>
structmigration_support
: public BaseComponent¶ - #include <migration_support.hpp>
This hook has to be inserted into the derivation chain of any component for it to support migration.
Public Types
-
template<>
usingdecorates_action
= void¶
Public Functions
-
migration_support
()¶
-
template<typename
T
, typename ...Ts
, typenameEnable
= std::enable_if_t<!std::is_same_v<std::decay_t<T>, migration_support>>>migration_support
(T &&t, Ts&&... ts)¶
-
~migration_support
()¶
-
void
pin
()¶
-
bool
unpin
()¶
-
void
mark_as_migrated
()¶
-
constexpr void
on_migrated
()¶ This hook is invoked on the newly created object after the migration has been finished
Public Static Functions
-
static constexpr bool
supports_migration
()¶
-
template<typename
F
>
static threads::thread_function_typedecorate_action
(naming::address_type lva, F &&f)¶
-
static std::pair<bool, components::pinned_ptr>
was_object_migrated
(hpx::naming::gid_type const &id, naming::address_type lva)¶
Protected Functions
-
threads::thread_result_type
thread_function
(threads::thread_function_type &&f, components::pinned_ptr, threads::thread_restart_state state)¶
-
template<>
-
template<typename
-
namespace