X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=blobdiff_plain;f=execution.h;h=b35113fd60aff8c8e8f3a49f838f3760104986b5;hp=22f694c9c193951dd9cc2405c834c298e7fee40d;hb=e102155b9b54d88cf310d8eba39a42aa51a1aec2;hpb=b4b72f4f097f4338bd1f4f48c34976781eeb8fb2 diff --git a/execution.h b/execution.h index 22f694c9..b35113fd 100644 --- a/execution.h +++ b/execution.h @@ -70,7 +70,6 @@ public: bool assert_bug(const char *msg); bool have_bug_reports() const; - bool have_fatal_bug_reports() const; SnapVector * get_bugs() const; @@ -90,10 +89,13 @@ public: ModelAction * check_current_action(ModelAction *curr); SnapVector * get_thrd_func_list() { return &thrd_func_list; } - SnapVector< SnapList *> * get_thrd_func_inst_lists() { return &thrd_func_inst_lists; } + SnapVector * get_thrd_last_entered_func() { return &thrd_last_entered_func; } + SnapVector< SnapList *> * get_thrd_func_act_lists() { return &thrd_func_act_lists; } bool isFinished() {return isfinished;} void setFinished() {isfinished = true;} + void restore_last_seq_num(); + SNAPSHOTALLOC private: int get_execution_number() const; @@ -113,7 +115,7 @@ private: bool next_execution(); bool initialize_curr_action(ModelAction **curr); - void process_read(ModelAction *curr, SnapVector * rf_set); + bool process_read(ModelAction *curr, SnapVector * rf_set); void process_write(ModelAction *curr); bool process_fence(ModelAction *curr); bool process_mutex(ModelAction *curr); @@ -122,6 +124,7 @@ private: void read_from(ModelAction *act, ModelAction *rf); bool synchronize(const ModelAction *first, ModelAction *second); + void add_uninit_action_to_lists(ModelAction *act); void add_action_to_lists(ModelAction *act); void add_normal_write_to_lists(ModelAction *act); void add_write_to_lists(ModelAction *act); @@ -198,6 +201,7 @@ private: Fuzzer * fuzzer; Thread * action_select_next_thread(const ModelAction *curr) const; + bool paused_by_fuzzer(const ModelAction * act) const; /* thrd_func_list stores a list of function ids for each thread. * Each element in thrd_func_list stores the functions that @@ -206,14 +210,13 @@ private: * This data structure is handled by ModelHistory */ SnapVector thrd_func_list; + SnapVector thrd_last_entered_func; /* Keeps track of atomic actions that thread i has performed in some * function. Index of SnapVector is thread id. SnapList simulates * the call stack. - * - * This data structure is handled by ModelHistory */ - SnapVector< SnapList< func_inst_list_t *> *> thrd_func_inst_lists; + SnapVector< SnapList *> thrd_func_act_lists; bool isfinished; };