action: add clock vector field, destructor
authorBrian Norris <banorris@uci.edu>
Wed, 16 May 2012 18:45:04 +0000 (11:45 -0700)
committerBrian Norris <banorris@uci.edu>
Sat, 26 May 2012 02:11:18 +0000 (19:11 -0700)
action.cc
action.h

index bd9e29fcdda3929c8a18fa539220e73daa1ec3df..1fe4c7fb79d11d627a8adeccc0ae3293eb2ea11c 100644 (file)
--- a/action.cc
+++ b/action.cc
@@ -2,6 +2,7 @@
 
 #include "model.h"
 #include "action.h"
+#include "clockvector.h"
 
 ModelAction::ModelAction(action_type_t type, memory_order order, void *loc, int value)
 {
@@ -14,6 +15,14 @@ ModelAction::ModelAction(action_type_t type, memory_order order, void *loc, int
        act->tid = t->get_id();
        act->value = value;
        act->seq_number = model->get_next_seq_num();
+
+       cv = NULL;
+}
+
+ModelAction::~ModelAction()
+{
+       if (cv)
+               delete cv;
 }
 
 bool ModelAction::is_read()
index b635e06c72ff67171bdfa5f9d61db75671316202..98ec8736eb6025341c86c8102e12a0ad037f4e39 100644 (file)
--- a/action.h
+++ b/action.h
@@ -17,10 +17,12 @@ typedef enum action_type {
 
 /* Forward declaration */
 class Node;
+class ClockVector;
 
 class ModelAction {
 public:
        ModelAction(action_type_t type, memory_order order, void *loc, int value);
+       ~ModelAction();
        void print(void);
 
        thread_id_t get_tid() { return tid; }
@@ -56,6 +58,8 @@ private:
        int value;
        Node *node;
        int seq_number;
+
+       ClockVector *cv;
 };
 
 typedef std::list<class ModelAction *> action_list_t;