X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=nodestack.h;h=941178d7be453267b7556a1226c4883a11128d9e;hb=dc9c89654982c64264dfee7b1ea23e9a5e88e18e;hp=94bb58ee1e64d235e4daf0801ee6861491c6b292;hpb=8ea66f246f18e3a92e279a9ba49c29beb2d8ef52;p=model-checker.git diff --git a/nodestack.h b/nodestack.h index 94bb58e..941178d 100644 --- a/nodestack.h +++ b/nodestack.h @@ -5,14 +5,13 @@ #ifndef __NODESTACK_H__ #define __NODESTACK_H__ -#include #include #include #include #include "mymemory.h" -#include "modeltypes.h" #include "schedule.h" +#include "promise.h" class ModelAction; class Thread; @@ -33,18 +32,12 @@ 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; bool priority; }; - /** * @brief A single node in a NodeStack * @@ -63,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); @@ -78,9 +72,8 @@ 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; @@ -107,7 +100,7 @@ public: bool increment_relseq_break(); bool relseq_break_empty() const; - void print(); + void print() const; void print_may_read_from(); MEMALLOC