hpx/lcos_local/trigger.hpp#

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

namespace hpx
namespace lcos
namespace local
template<typename Mutex = hpx::spinlock>
struct base_trigger#

Public Functions

inline base_trigger()#
inline base_trigger(base_trigger &&rhs) noexcept#
inline base_trigger &operator=(base_trigger &&rhs) noexcept#
inline hpx::future<void> get_future(std::size_t *generation_value = nullptr, error_code &ec = hpx::throws)#

get a future allowing to wait for the trigger to fire

inline bool set(error_code &ec = throws)#

Trigger this object.

inline void synchronize(std::size_t generation_value, char const *function_name = "trigger::synchronize", error_code &ec = throws)#

Wait for the generational counter to reach the requested stage.

inline std::size_t next_generation()#
inline std::size_t generation() const#

Protected Types

typedef Mutex mutex_type#

Protected Functions

inline bool trigger_conditions(error_code &ec = throws)#
template<typename Lock>
inline void synchronize(std::size_t generation_value, Lock &l, char const *function_name = "trigger::synchronize", error_code &ec = throws)#

Private Types

typedef std::list<conditional_trigger*> condition_list_type#

Private Functions

inline bool test_condition(std::size_t generation_value)#

Private Members

mutable mutex_type mtx_#
hpx::promise<void> promise_#
std::size_t generation_#
condition_list_type conditions_#
struct manage_condition#

Public Functions

inline manage_condition(base_trigger &gate, conditional_trigger &cond)#
inline ~manage_condition()#
template<typename Condition>
inline hpx::future<void> get_future(Condition &&func, error_code &ec = hpx::throws)#

Public Members

base_trigger &this_#
condition_list_type::iterator it_#
struct trigger : public hpx::lcos::local::base_trigger<hpx::no_mutex>#

Public Functions

inline trigger()#
inline trigger(trigger &&rhs) noexcept#
inline trigger &operator=(trigger &&rhs) noexcept#
template<typename Lock>
inline void synchronize(std::size_t generation_value, Lock &l, char const *function_name = "trigger::synchronize", error_code &ec = throws)#

Private Types

typedef base_trigger<hpx::no_mutex> base_type#