X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=action.h;h=e342e63271d223417e55393d4d8bc941b1d2a0ba;hb=bcaa8e3b0181455d702b9f0e634dc9258f7ab84b;hp=f554e36cbb0495ce0658595970086891968b48b9;hpb=69ecbdff21cd552ab9e0bc18dbbd42fb1aa5e799;p=cdsspec-compiler.git diff --git a/action.h b/action.h index f554e36..e342e63 100644 --- a/action.h +++ b/action.h @@ -31,18 +31,20 @@ class ClockVector; */ class ModelAction { public: - ModelAction(action_type_t type, memory_order order, void *loc, int value); + ModelAction(action_type_t type, memory_order order, void *loc, int value = VALUE_NONE); ~ModelAction(); - void print(void); + void print(void) const; thread_id_t get_tid() const { return tid; } action_type get_type() const { return type; } memory_order get_mo() const { return order; } void * get_location() const { return location; } int get_seq_number() const { return seq_number; } + int get_value() const { return value; } Node * get_node() const { return node; } void set_node(Node *n) { node = n; } + void set_value(int val) { value = val; } bool is_read() const; bool is_write() const; @@ -58,6 +60,8 @@ public: ClockVector * get_cv() const { return cv; } void read_from(ModelAction *act); + bool happens_before(ModelAction *act); + inline bool operator <(const ModelAction& act) const { return get_seq_number() < act.get_seq_number(); }