Legion Runtime
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | List of all members
Legion::DeferredValue< T > Class Template Reference

#include <legion.h>

Inheritance diagram for Legion::DeferredValue< T >:
Legion::UntypedDeferredValue

Public Types

typedef T value_type
 
typedef T & reference
 
typedef const T & const_reference
 

Public Member Functions

 DeferredValue (T initial_value, size_t alignment=std::alignment_of< T >())
 
__CUDA_HD__ T read (void) const
 
__CUDA_HD__ void write (T value) const
 
__CUDA_HD__ T * ptr (void) const
 
__CUDA_HD__ T & ref (void) const
 
__CUDA_HD__ operator T (void) const
 
__CUDA_HD__ DeferredValue< T > & operator= (T value)
 
- Public Member Functions inherited from Legion::UntypedDeferredValue
 UntypedDeferredValue (size_t field_size, Memory target_memory, const void *initial_value=NULL, size_t alignment=16)
 
 UntypedDeferredValue (size_t field_size, Memory::Kind memory_kind=Memory::Z_COPY_MEM, const void *initial_value=NULL, size_t alignment=16)
 
 UntypedDeferredValue (const UntypedDeferredValue &rhs)
 
template<typename T >
 operator DeferredValue< T > (void) const
 
template<typename REDOP , bool EXCLUSIVE>
 operator DeferredReduction< REDOP, EXCLUSIVE > (void) const
 
size_t field_size (void) const
 
void finalize (Context ctx) const
 
Realm::RegionInstance get_instance (void) const
 

Protected Attributes

Realm::AffineAccessor< T, 1, coord_t > accessor
 
- Protected Attributes inherited from Legion::UntypedDeferredValue
Realm::RegionInstance instance
 

Additional Inherited Members

- Static Protected Member Functions inherited from Legion::UntypedDeferredValue
static Memory get_memory_from_kind (Memory::Kind kind, bool value)
 
static Realm::RegionInstance allocate_instance (Memory memory, Realm::InstanceLayoutGeneric *layout)
 
static void destroy_instance (Realm::RegionInstance, Realm::Event precondition)
 
static Domain get_index_space_bounds (IndexSpace space)
 

Detailed Description

template<typename T>
class Legion::DeferredValue< T >

A deferred value is a special helper class for handling return values for tasks that do asynchronous operations (e.g. GPU kernel launches), but we don't want to wait for the asynchronous operations to be returned. This object should be returned directly as the result of a Legion task, but its value will not be read until all of the "effects" of the task are done. The following methods are supported during task execution:


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