Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::Task Class Referencefinal

#include <tasks.h>

Inheritance diagram for Realm::Task:
Collaboration diagram for Realm::Task:

Classes

class  DeferredSpawn
 

Public Types

typedef IntrusivePriorityList< Task, int, REALM_PMTA_USE(Task, tl_link), REALM_PMTA_USE(Task, priority), DummyLockTaskList
 

Public Member Functions

 Task (Processor _proc, Processor::TaskFuncID _func_id, const void *_args, size_t _arglen, const ProfilingRequestSet &reqs, Event _before_event, GenEventImpl *_finish_event, EventImpl::gen_t _finish_gen, int _priority)
 
virtual bool mark_ready (void)
 
virtual bool mark_started (void)
 
virtual void print (std::ostream &os) const
 
virtual bool attempt_cancellation (int error_code, const void *reason_data, size_t reason_size)
 
virtual void set_priority (int new_priority)
 
void execute_on_processor (Processor p)
 
 REALM_PMTA_DEFN (Task, IntrusivePriorityListLink< Task >, tl_link)
 
 REALM_PMTA_DEFN (Task, int, priority)
 
- Public Member Functions inherited from Realm::Operation
void add_reference (void)
 
void remove_reference (void)
 
virtual void mark_finished (bool successful)
 
virtual void mark_terminated (int error_code, const ByteArray &details)
 
virtual void handle_poisoned_precondition (Event pre)
 
bool cancellation_requested (void) const
 
void add_async_work_item (AsyncWorkItem *item)
 
ProfilingMeasurements::OperationEventWaits::WaitIntervalcreate_wait_interval (Event e)
 
bool wants_gpu_work_start () const
 
void mark_gpu_work_start ()
 
void add_gpu_work_start (uint64_t timestamp)
 
void add_gpu_work_end (uint64_t timestamp)
 
Event get_finish_event (void) const
 
void add_finish_event_precondition (Event precondition)
 

Static Public Member Functions

static void * operator new (size_t size)
 
static void operator delete (void *ptr)
 

Public Attributes

Processor proc
 
Processor::TaskFuncID func_id
 
char * argdata
 
size_t arglen
 
char short_argdata [SHORT_ARGLEN_MAX]
 
bool free_argdata
 
Event before_event
 
int priority
 
IntrusivePriorityListLink< Tasktl_link
 
DeferredSpawn deferred_spawn
 
atomic< uintptr_t > pending_head
 

Static Public Attributes

static const size_t SHORT_ARGLEN_MAX = 64
 

Protected Member Functions

virtual ~Task (void)
 
virtual void mark_completed (void)
 
virtual Status::Result get_state (void)
 
- Protected Member Functions inherited from Realm::Operation
 Operation (GenEventImpl *_finish_event, EventImpl::gen_t _finish_gen, const ProfilingRequestSet &_requests)
 
virtual ~Operation (void)
 
void work_item_finished (AsyncWorkItem *item, bool successful)
 
void clear_profiling (void)
 
void reconstruct_measurements ()
 
void trigger_finish_event (bool poisoned)
 
void send_profiling_data (void)
 

Protected Attributes

Threadexecuting_thread
 
atomic< bool > marked_ready
 
- Protected Attributes inherited from Realm::Operation
GenEventImplfinish_event
 
EventImpl::gen_t finish_gen
 
atomic< int > refcount
 
atomic< Status::Resultstate
 
ProfilingMeasurements::OperationStatus status
 
bool wants_timeline
 
ProfilingMeasurements::OperationTimeline timeline
 
bool wants_gpu_timeline
 
ProfilingMeasurements::OperationTimelineGPU timeline_gpu
 
bool wants_event_waits
 
ProfilingMeasurements::OperationEventWaits waits
 
ProfilingRequestSet requests
 
ProfilingMeasurementCollection measurements
 
atomic< AsyncWorkItem * > all_work_items
 
atomic< int > pending_work_items
 
atomic< int > failed_work_items
 

Additional Inherited Members

- Protected Types inherited from Realm::Operation
typedef ProfilingMeasurements::OperationStatus Status
 

Member Typedef Documentation

◆ TaskList

Constructor & Destructor Documentation

◆ Task()

Realm::Task::Task ( Processor  _proc,
Processor::TaskFuncID  _func_id,
const void *  _args,
size_t  _arglen,
const ProfilingRequestSet reqs,
Event  _before_event,
GenEventImpl _finish_event,
EventImpl::gen_t  _finish_gen,
int  _priority 
)

◆ ~Task()

virtual Realm::Task::~Task ( void  )
protectedvirtual

Member Function Documentation

◆ attempt_cancellation()

virtual bool Realm::Task::attempt_cancellation ( int  error_code,
const void *  reason_data,
size_t  reason_size 
)
virtual

Reimplemented from Realm::Operation.

◆ execute_on_processor()

void Realm::Task::execute_on_processor ( Processor  p)

◆ get_state()

virtual Status::Result Realm::Task::get_state ( void  )
protectedvirtual

Reimplemented from Realm::Operation.

◆ mark_completed()

virtual void Realm::Task::mark_completed ( void  )
protectedvirtual

Reimplemented from Realm::Operation.

◆ mark_ready()

virtual bool Realm::Task::mark_ready ( void  )
virtual

Reimplemented from Realm::Operation.

◆ mark_started()

virtual bool Realm::Task::mark_started ( void  )
virtual

Reimplemented from Realm::Operation.

◆ operator delete()

static void Realm::Task::operator delete ( void *  ptr)
static

◆ operator new()

static void * Realm::Task::operator new ( size_t  size)
static

◆ print()

virtual void Realm::Task::print ( std::ostream &  os) const
virtual

Implements Realm::Operation.

◆ REALM_PMTA_DEFN() [1/2]

Realm::Task::REALM_PMTA_DEFN ( Task  ,
int  ,
priority   
)

◆ REALM_PMTA_DEFN() [2/2]

Realm::Task::REALM_PMTA_DEFN ( Task  ,
IntrusivePriorityListLink< Task ,
tl_link   
)

◆ set_priority()

virtual void Realm::Task::set_priority ( int  new_priority)
virtual

Reimplemented from Realm::Operation.

Member Data Documentation

◆ argdata

char* Realm::Task::argdata

◆ arglen

size_t Realm::Task::arglen

◆ before_event

Event Realm::Task::before_event

◆ deferred_spawn

DeferredSpawn Realm::Task::deferred_spawn

◆ executing_thread

Thread* Realm::Task::executing_thread
protected

◆ free_argdata

bool Realm::Task::free_argdata

◆ func_id

Processor::TaskFuncID Realm::Task::func_id

◆ marked_ready

atomic<bool> Realm::Task::marked_ready
protected

◆ pending_head

atomic<uintptr_t> Realm::Task::pending_head

◆ priority

int Realm::Task::priority

◆ proc

Processor Realm::Task::proc

◆ short_argdata

char Realm::Task::short_argdata[SHORT_ARGLEN_MAX]

◆ SHORT_ARGLEN_MAX

const size_t Realm::Task::SHORT_ARGLEN_MAX = 64
static

◆ tl_link

IntrusivePriorityListLink<Task> Realm::Task::tl_link

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