X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=blobdiff_plain;f=model.h;h=d0e47d9d6212ad004194aac45ef070a96ed5d2c0;hp=432399ea22eb7124557cb8cdc9bcfa8b38b6d605;hb=004ffe355e33b1b5e88095a0873fa5119993c7bc;hpb=71a4f2447c7f0a20120da4e751d78cdeb4495ddd diff --git a/model.h b/model.h index 432399ea..d0e47d9d 100644 --- a/model.h +++ b/model.h @@ -5,7 +5,6 @@ #ifndef __MODEL_H__ #define __MODEL_H__ -#include #include #include #include @@ -111,12 +110,11 @@ public: thread_id_t get_next_id(); unsigned int get_num_threads() const; - Thread * get_current_thread(); + Thread * get_current_thread() const; int switch_to_master(ModelAction *act); - ClockVector * get_cv(thread_id_t tid); - ModelAction * get_parent_action(thread_id_t tid); - bool isfinalfeasible() const; + ClockVector * get_cv(thread_id_t tid) const; + ModelAction * get_parent_action(thread_id_t tid) const; void check_promises_thread_disabled(); void mo_check_promises(thread_id_t tid, const ModelAction *write); void check_promises(thread_id_t tid, ClockVector *old_cv, ClockVector * merge_cv); @@ -129,7 +127,7 @@ public: void set_bad_synchronization(); const model_params params; - Node * get_curr_node(); + Node * get_curr_node() const; MEMALLOC private: @@ -172,7 +170,7 @@ private: void check_curr_backtracking(ModelAction * curr); void add_action_to_lists(ModelAction *act); ModelAction * get_last_action(thread_id_t tid) const; - ModelAction * get_last_seq_cst(ModelAction *curr) const; + ModelAction * get_last_seq_cst_write(ModelAction *curr) const; ModelAction * get_last_unlock(ModelAction *curr) const; void build_reads_from_past(ModelAction *curr); ModelAction * process_rmw(ModelAction *curr); @@ -244,6 +242,7 @@ private: struct execution_stats stats; void record_stats(); + bool is_feasible_prefix_ignore_relseq() const; bool is_infeasible_ignoreRMW() const; bool is_infeasible() const; bool is_deadlocked() const;