X-Git-Url: http://plrg.eecs.uci.edu/git/?p=model-checker.git;a=blobdiff_plain;f=nodestack.h;h=8a20c45cb2c03e53bdeaf53ee8e80a89b3882014;hp=a857084ba1fe8676b0b2c5b8e57fc8a873a77bc0;hb=7bd9b5a1446863dc1a9de9683476f5a480dfba91;hpb=ab9a8cb068ff8fbc2f913c2c4be0fb4cede98743 diff --git a/nodestack.h b/nodestack.h index a857084..8a20c45 100644 --- a/nodestack.h +++ b/nodestack.h @@ -40,6 +40,7 @@ struct fairness_info { typedef enum { READ_FROM_PAST, + READ_FROM_PROMISE, READ_FROM_FUTURE, READ_FROM_NONE, } read_from_type_t; @@ -89,6 +90,9 @@ public: const ModelAction * get_read_from_past(int i) const; int get_read_from_past_size() const; + void add_read_from_promise(const ModelAction *reader); + const Promise * get_read_from_promise() const; + bool add_future_value(struct future_value fv); struct future_value get_future_value() const; @@ -116,6 +120,8 @@ private: bool read_from_past_empty() const; bool increment_read_from_past(); + bool read_from_promise_empty() const; + bool increment_read_from_promise(); bool future_value_empty() const; bool increment_future_value(); read_from_type_t read_from_status; @@ -136,6 +142,9 @@ private: std::vector< const ModelAction *, ModelAlloc< const ModelAction * > > read_from_past; unsigned int read_from_past_idx; + std::vector< const ModelAction *, ModelAlloc > read_from_promises; + int read_from_promise_idx; + std::vector< struct future_value, ModelAlloc > future_values; std::vector< promise_t, ModelAlloc > promises; int future_index;