X-Git-Url: http://plrg.eecs.uci.edu/git/?p=cdsspec-compiler.git;a=blobdiff_plain;f=execution.h;h=7f63e6d99812c98f5732d35c52a1e04f8691ac17;hp=6e4fd2ab900988df3d40e1b06be6c8f38d8df3f7;hb=50e0465f724dc182d5d7504004e93f1a1b4644b9;hpb=20956d81209b12a99ced78f51dd4294a0638343f diff --git a/execution.h b/execution.h index 6e4fd2a..7f63e6d 100644 --- a/execution.h +++ b/execution.h @@ -61,11 +61,13 @@ struct release_seq { class ModelExecution { public: ModelExecution(ModelChecker *m, - struct model_params *params, + const struct model_params *params, Scheduler *scheduler, NodeStack *node_stack); ~ModelExecution(); + const struct model_params * get_params() const { return params; } + Thread * take_step(ModelAction *curr); void fixup_release_sequences(); @@ -107,6 +109,7 @@ public: bool is_feasible_prefix_ignore_relseq() const; bool is_infeasible() const; bool is_deadlocked() const; + bool is_yieldblocked() const; bool too_many_steps() const; ModelAction * get_next_backtrack(); @@ -186,11 +189,11 @@ private: ModelAction * get_uninitialized_action(const ModelAction *curr) const; action_list_t action_trace; - HashTable thread_map; + SnapVector thread_map; /** Per-object list of actions. Maps an object (i.e., memory location) * to a trace of all actions performed on the object. */ - HashTable * const obj_map; + HashTable obj_map; /** Per-object list of actions. Maps an object (i.e., memory location) * to a trace of all actions performed on the object. */