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::value_handle< R > Class Template Reference

Handle for receiving one result. More...

Public Member Functions

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

typedef internal_storage_type::storage_type storage_type
 
using value_type = R
 

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

template<typename R>
class stapl::runtime::value_handle< R >

Handle for receiving one result.

Template Parameters
RResult type.
See also
async_result, future, future_base

Member Function Documentation

◆ wait() [1/2]

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

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

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  )
finalvirtual

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)

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 
)

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)

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)

Sets the result.

Parameters
valueValue to be set.

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