X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=nodestack.h;h=941178d7be453267b7556a1226c4883a11128d9e;hb=3f77119600ac3aa246258dec2776056d09f8e4e0;hp=d2e6491b2edec5891943351e9891b358f2b05594;hpb=f10dc6ce67a97ab18423e7cedaa24961bf0d80dc;p=model-checker.git diff --git a/nodestack.h b/nodestack.h index d2e6491..941178d 100644 --- a/nodestack.h +++ b/nodestack.h @@ -10,8 +10,8 @@ #include #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,7 +72,7 @@ public: * occurred previously in the stack. */ Node * get_parent() const { return parent; } - bool add_future_value(const ModelAction *writer, modelclock_t expiration); + bool add_future_value(struct future_value fv); struct future_value get_future_value() const; bool increment_future_value(); bool future_value_empty() const; @@ -104,7 +100,7 @@ public: bool increment_relseq_break(); bool relseq_break_empty() const; - void print(); + void print() const; void print_may_read_from(); MEMALLOC