18#ifndef REALM_OPERATION_H
19#define REALM_OPERATION_H
71 virtual void print(std::ostream &os)
const = 0;
84 virtual void print(std::ostream &os)
const = 0;
184 virtual bool event_triggered(
bool poisoned);
185 virtual void print(std::ostream& os)
const;
186 virtual Event get_finish_event(
void)
const;
195 virtual void print(std::ostream &os)
const;
206 typedef std::map<Event, TableEntry>
Table;
208#ifdef REALM_USE_OPERATION_TABLE
211 static const int NUM_TABLES = 4;
213 Mutex mutexes[NUM_TABLES];
214 Table tables[NUM_TABLES];
223 const void *data,
size_t datalen);
228#include "realm/operation.inl"
Definition bytearray.h:53
unsigned gen_t
Definition event_impl.h:87
Definition event_impl.h:49
Definition event_impl.h:198
Definition operation.h:155
void print_operations(std::ostream &os)
void add_local_operation(Event finish_event, Operation *local_op)
std::map< Event, TableEntry > Table
Definition operation.h:206
static void register_handlers(void)
void add_remote_operation(Event finish_event, int remote_note)
void set_priority(Event finish_event, int new_priority)
void shutdown_check(void)
void event_triggered(Event e)
bool request_cancellation(Event finish_event, const void *reason_data, size_t reason_size)
Definition operation.h:75
AsyncWorkItem * next_item
Definition operation.h:93
virtual void mark_finished(bool successful)
virtual void print(std::ostream &os) const =0
virtual ~AsyncWorkItem(void)
Operation * op
Definition operation.h:87
friend std::ostream & operator<<(std::ostream &os, Operation *op)
AsyncWorkItem(Operation *_op)
virtual void request_cancellation(void)=0
Definition operation.h:32
GenEventImpl * finish_event
Definition operation.h:122
virtual bool mark_ready(void)
void clear_profiling(void)
void add_gpu_work_end(uint64_t timestamp)
bool wants_event_waits
Definition operation.h:142
Operation(GenEventImpl *_finish_event, EventImpl::gen_t _finish_gen, const ProfilingRequestSet &_requests)
virtual void print(std::ostream &os) const =0
void add_async_work_item(AsyncWorkItem *item)
virtual bool attempt_cancellation(int error_code, const void *reason_data, size_t reason_size)
ProfilingMeasurements::OperationTimelineGPU timeline_gpu
Definition operation.h:141
atomic< int > pending_work_items
Definition operation.h:149
void trigger_finish_event(bool poisoned)
void add_finish_event_precondition(Event precondition)
virtual void handle_poisoned_precondition(Event pre)
virtual bool mark_started(void)
ProfilingMeasurements::OperationStatus Status
Definition operation.h:131
atomic< AsyncWorkItem * > all_work_items
Definition operation.h:148
bool wants_timeline
Definition operation.h:138
ProfilingRequestSet requests
Definition operation.h:144
void remove_reference(void)
ProfilingMeasurements::OperationEventWaits waits
Definition operation.h:143
bool cancellation_requested(void) const
void work_item_finished(AsyncWorkItem *item, bool successful)
void add_gpu_work_start(uint64_t timestamp)
atomic< Status::Result > state
Definition operation.h:132
atomic< int > refcount
Definition operation.h:124
atomic< int > failed_work_items
Definition operation.h:150
friend std::ostream & operator<<(std::ostream &os, Operation *op)
ProfilingMeasurementCollection measurements
Definition operation.h:145
void reconstruct_measurements()
bool wants_gpu_timeline
Definition operation.h:140
virtual void mark_terminated(int error_code, const ByteArray &details)
virtual void mark_completed(void)
virtual void set_priority(int new_priority)
Event get_finish_event(void) const
ProfilingMeasurements::OperationStatus status
Definition operation.h:137
void mark_gpu_work_start()
void send_profiling_data(void)
EventImpl::gen_t finish_gen
Definition operation.h:123
virtual void mark_finished(bool successful)
ProfilingMeasurements::OperationTimeline timeline
Definition operation.h:139
virtual Status::Result get_state(void)
ProfilingMeasurements::OperationEventWaits::WaitInterval * create_wait_interval(Event e)
bool wants_gpu_work_start() const
Definition profiling.h:393
Definition profiling.h:363
Definition activemsg.h:38
int NodeID
Definition nodeset.h:40
Definition operation.h:219
static void handle_message(NodeID sender, const CancelOperationMessage &msg, const void *data, size_t datalen)
Event finish_event
Definition operation.h:220
Definition operation.h:193
virtual void event_triggered(bool poisoned, TimeLimit work_until)
Operation * local_op
Definition operation.h:200
Event finish_event
Definition operation.h:199
bool pending_cancellation
Definition operation.h:202
virtual Event get_finish_event(void) const
OperationTable * table
Definition operation.h:198
void * reason_data
Definition operation.h:203
int remote_node
Definition operation.h:201
size_t reason_size
Definition operation.h:204
virtual void print(std::ostream &os) const
Definition profiling.h:159
Definition profiling.h:153
Definition profiling.h:69
Result
Definition profiling.h:73
Definition profiling.h:132
Definition profiling.h:100