STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Public Types | Protected Member Functions | Protected Attributes
stapl::runtime::barrier_object Class Reference

Performs a barrier over all locations of the current gang. More...

Public Member Functions

 barrier_object (context &ctx)
 
rmi_handle::reference const & get_rmi_handle (void) noexcept
 
rmi_handle::const_reference const & get_rmi_handle (void) const noexcept
 
void operator() (void)
 
bool valid (void) const final
 Returns true if the result has been received.
 
void wait (void) const final
 Waits for the result to be received. More...
 
void wait (context &ctx) const
 Waits for the result to be received. More...
 
get (void) final
 Returns the received result. More...
 
get (context &ctx)
 Returns the received result. More...
 
void set_value (storage_type *const p, void *const base, message_shared_ptr &m)
 Sets the result. More...
 
void set_value (R const &value)
 Sets the result. More...
 
void set_value (R &&value)
 Sets the result. More...
 
void set_owned (void) noexcept
 
bool is_owned (void) const noexcept
 
void async_then (Function &&f)
 

Public Types

using value_type = void
 
typedef internal_storage_type::storage_type storage_type
 

Protected Member Functions

bool valid_no_yield (void) const noexcept final
 Returns true if the result has been received.
 
void schedule_continuation (void)
 Schedules a continuation if async_then() was called.
 

Protected Attributes

std::mutex m_mtx
 

Detailed Description

Performs a barrier over all locations of the current gang.

Member Function Documentation

◆ wait() [1/2]

template<typename R>
void stapl::runtime::value_handle< R >::wait ( void  ) const
finalvirtualinherited

Waits for the result to be received.

Blocks until valid() const returns true.

Implements stapl::runtime::future_base< R >.

◆ wait() [2/2]

template<typename R>
void stapl::runtime::value_handle< R >::wait ( context ctx) const
inherited

Waits for the result to be received.

Blocks until valid() const returns true.

◆ get() [1/2]

template<typename R>
R stapl::runtime::value_handle< R >::get ( void  )
finalvirtualinherited

Returns the received result.

This function waits until the result has been received and returns it.

Calling valid() const returns false after a call to this function.

The lock ensures that set_value() has finished before the get() continues, to avoid calling schedule_continuation() on an object that has been destroyed.

Implements stapl::runtime::future_base< R >.

◆ get() [2/2]

template<typename R>
R stapl::runtime::value_handle< R >::get ( context ctx)
inherited

Returns the received result.

This function waits until the result has been received and returns it.

Calling valid() const returns false after a call to this function.

The lock ensures that set_value() has finished before the get() continues, to avoid calling schedule_continuation() on an object that has been destroyed.

◆ set_value() [1/3]

template<typename R>
void stapl::runtime::value_handle< R >::set_value ( storage_type *const  p,
void *const  base,
message_shared_ptr m 
)
inherited

Sets the result.

This function keeps a pointer to the buffer where the result remains packed until get() is called.

Parameters
pPointer to the stapl::runtime::arg_storage in the buffer.
baseAddress in the buffer that the stapl::runtime::arg_storage is stored in.
mBuffer that contains the stapl::runtime::arg_storage.
See also
arg_storage, message

◆ set_value() [2/3]

template<typename R>
void stapl::runtime::value_handle< R >::set_value ( R const &  value)
inherited

Sets the result.

Parameters
valueValue to be set.

◆ set_value() [3/3]

template<typename R>
void stapl::runtime::value_handle< R >::set_value ( R &&  value)
inherited

Sets the result.

Parameters
valueValue to be set.

The documentation for this class was generated from the following file: