X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=blobdiff_plain;f=history.h;h=f06c2e44e46cb189c34d06f870063a75a0dcd772;hp=4795eb53e4cae374027cccf6592eb68549dbc0f4;hb=da918c450a8fb8524ed99da0a35a7e417eb85777;hpb=3b5768f03aa10fbb9d909850a7f394c4561ecb9e diff --git a/history.h b/history.h index 4795eb53..f06c2e44 100644 --- a/history.h +++ b/history.h @@ -73,6 +73,20 @@ private: HashTable *, uintptr_t, 0> * loc_wr_func_nodes_map; HashTable *, uintptr_t, 0> * loc_waiting_writes_map; + + /* Keeps track of atomic actions that thread i has performed in some + * function. Index of SnapVector is thread id. SnapList simulates + * the call stack. + */ + SnapVector< SnapList *> * thrd_func_act_lists; + + /* thrd_func_list stores a list of function ids for each thread. + * Each element in thrd_func_list stores the functions that + * thread i has entered and yet to exit from + */ + SnapVector * thrd_func_list; + SnapVector * thrd_last_entered_func; + /* The write values each paused thread is waiting for */ SnapVector * thrd_waiting_write; SnapVector * thrd_wait_obj; @@ -84,6 +98,7 @@ private: bool skip_action(ModelAction * act, SnapList * curr_act_list); void monitor_waiting_thread(uint32_t func_id, thread_id_t tid); void monitor_waiting_thread_counter(thread_id_t tid); + }; #endif /* __HISTORY_H__ */