X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=nodestack.h;h=10331c2ef59ccb00046ad62c3e40439543a1288d;hb=35c057636dd12235368cfb9644532c7561609624;hp=147b0048eb9cb00c82bf82c7855c2fe78a6414b8;hpb=59eb730e1d19a0825008c40eb521bfc5c29df5f9;p=model-checker.git diff --git a/nodestack.h b/nodestack.h index 147b004..10331c2 100644 --- a/nodestack.h +++ b/nodestack.h @@ -53,7 +53,7 @@ struct fairness_info { */ class Node { public: - Node(ModelAction *act = NULL, Node *par = NULL, int nthreads = 1, Node *prevfairness = NULL); + Node(ModelAction *act = NULL, Node *par = NULL, int nthreads = 2, Node *prevfairness = NULL); ~Node(); /* return true = thread choice has already been explored */ bool has_been_explored(thread_id_t tid); @@ -92,6 +92,16 @@ public: bool promise_empty(); enabled_type_t *get_enabled_array() {return enabled_array;} + void set_misc_max(int i); + int get_misc(); + bool increment_misc(); + bool misc_empty(); + + void add_relseq_break(const ModelAction *write); + const ModelAction * get_relseq_break(); + bool increment_relseq_break(); + bool relseq_break_empty(); + void print(); void print_may_read_from(); @@ -117,6 +127,12 @@ private: std::vector< struct future_value, ModelAlloc > future_values; std::vector< promise_t, ModelAlloc > promises; int future_index; + + std::vector< const ModelAction *, ModelAlloc > relseq_break_writes; + int relseq_break_index; + + int misc_index; + int misc_max; }; typedef std::vector< Node *, ModelAlloc< Node * > > node_list_t;