model: rename 'reads_from' to 'rf'
[c11tester.git] / nodestack.h
index dc872c740b9ea021ea9fb3261af8fc62aa4bf2ac..6200887a0e624c945fee33f09546ee87cd7109c1 100644 (file)
@@ -10,8 +10,8 @@
 #include <inttypes.h>
 
 #include "mymemory.h"
-#include "modeltypes.h"
 #include "schedule.h"
+#include "promise.h"
 
 class ModelAction;
 class Thread;
@@ -32,11 +32,6 @@ class Thread;
 
 typedef int promise_t;
 
-struct future_value {
-       uint64_t value;
-       modelclock_t expiration;
-};
-
 struct fairness_info {
        unsigned int enabled_count;
        unsigned int turns;
@@ -61,6 +56,7 @@ public:
        /* return true = backtrack set is empty */
        bool backtrack_empty() const;
 
+       void clear_backtracking();
        void explore_child(ModelAction *act, enabled_type_t *is_enabled);
        /* return false = thread was already in backtrack */
        bool set_backtrack(thread_id_t id);
@@ -76,18 +72,17 @@ public:
         * occurred previously in the stack. */
        Node * get_parent() const { return parent; }
 
-       bool add_future_value(uint64_t value, modelclock_t expiration);
-       uint64_t get_future_value() const;
-       modelclock_t get_future_value_expiration() const;
+       bool add_future_value(struct future_value fv);
+       struct future_value get_future_value() const;
        bool increment_future_value();
        bool future_value_empty() const;
 
-       void add_read_from(const ModelAction *act);
-       const ModelAction * get_read_from() const;
-       bool increment_read_from();
-       bool read_from_empty() const;
-       int get_read_from_size() const;
-       const ModelAction * get_read_from_at(int i) const;
+       void add_read_from_past(const ModelAction *act);
+       const ModelAction * get_read_from_past() const;
+       bool increment_read_from_past();
+       bool read_from_past_empty() const;
+       int get_read_from_past_size() const;
+       const ModelAction * get_read_from_past(int i) const;
 
        void set_promise(unsigned int i, bool is_rmw);
        bool get_promise(unsigned int i) const;
@@ -105,8 +100,8 @@ public:
        bool increment_relseq_break();
        bool relseq_break_empty() const;
 
-       void print();
-       void print_may_read_from();
+       void print() const;
+       void print_read_from_past();
 
        MEMALLOC
 private:
@@ -121,11 +116,12 @@ private:
        int numBacktracks;
        enabled_type_t *enabled_array;
 
-       /** The set of ModelActions that this the action at this Node may read
-        *  from. Only meaningful if this Node represents a 'read' action. */
-       std::vector< const ModelAction *, ModelAlloc< const ModelAction * > > may_read_from;
-
-       unsigned int read_from_index;
+       /**
+        * The set of past ModelActions that this the action at this Node may
+        * read from. Only meaningful if this Node represents a 'read' action.
+        */
+       std::vector< const ModelAction *, ModelAlloc< const ModelAction * > > read_from_past;
+       unsigned int read_from_past_idx;
 
        std::vector< struct future_value, ModelAlloc<struct future_value> > future_values;
        std::vector< promise_t, ModelAlloc<promise_t> > promises;