thread_id_t get_next_replay_thread();
ModelAction * get_next_backtrack();
void reset_to_initial_state();
thread_id_t get_next_replay_thread();
ModelAction * get_next_backtrack();
void reset_to_initial_state();
void add_action_to_lists(ModelAction *act);
ModelAction * get_last_action(thread_id_t tid);
ModelAction * get_parent_action(thread_id_t tid);
ModelAction * get_last_seq_cst(const void *location);
void build_reads_from_past(ModelAction *curr);
void add_action_to_lists(ModelAction *act);
ModelAction * get_last_action(thread_id_t tid);
ModelAction * get_parent_action(thread_id_t tid);
ModelAction * get_last_seq_cst(const void *location);
void build_reads_from_past(ModelAction *curr);
void r_modification_order(ModelAction * curr, const ModelAction *rf);
void w_modification_order(ModelAction * curr);
void r_modification_order(ModelAction * curr, const ModelAction *rf);
void w_modification_order(ModelAction * curr);
ModelAction *current_action;
ModelAction *diverge;
thread_id_t nextThread;
ucontext_t *system_context;
action_list_t *action_trace;
ModelAction *current_action;
ModelAction *diverge;
thread_id_t nextThread;
ucontext_t *system_context;
action_list_t *action_trace;
/** Per-object list of actions. Maps an object (i.e., memory location)
* to a trace of all actions performed on the object. */
/** Per-object list of actions. Maps an object (i.e., memory location)
* to a trace of all actions performed on the object. */
- std::map<void *, std::vector<action_list_t> > *obj_thrd_map;
+ HashTable<void *, std::vector<action_list_t>, uintptr_t, 4 > *obj_thrd_map;
+ std::vector<Promise *> * promises;