X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=execution.h;h=fa2b78b8a282fda6234f3090a00bda968104cc54;hb=9935cd27715daa888bde51af3975974140df1789;hp=40cd3ac03ba1360013c64bc52bef7b24c03293f7;hpb=368dcf3baf2ef233bc752474d23bea77f22b2edd;p=c11tester.git diff --git a/execution.h b/execution.h index 40cd3ac0..fa2b78b8 100644 --- a/execution.h +++ b/execution.h @@ -84,7 +84,6 @@ public: ModelAction * get_parent_action(thread_id_t tid) const; bool isfeasibleprefix() const; - action_list_t * get_actions_on_obj(void * obj, thread_id_t tid) const; ModelAction * get_last_action(thread_id_t tid) const; bool check_action_enabled(ModelAction *curr); @@ -104,8 +103,9 @@ public: action_list_t * get_action_trace() { return &action_trace; } Fuzzer * getFuzzer(); CycleGraph * const get_mo_graph() { return mo_graph; } - HashTable * getCondMap() {return &cond_map;} - HashTable * getMutexMap() {return &mutex_map;} + HashTable * getCondMap() {return &cond_map;} + HashTable * getMutexMap() {return &mutex_map;} + ModelAction * check_current_action(ModelAction *curr); SNAPSHOTALLOC private: @@ -125,10 +125,9 @@ private: modelclock_t get_next_seq_num(); bool next_execution(); - ModelAction * check_current_action(ModelAction *curr); bool initialize_curr_action(ModelAction **curr); - bool process_read(ModelAction *curr, SnapVector * rf_set); - bool process_write(ModelAction *curr); + void process_read(ModelAction *curr, SnapVector * rf_set); + void process_write(ModelAction *curr); bool process_fence(ModelAction *curr); bool process_mutex(ModelAction *curr); @@ -141,10 +140,10 @@ private: ModelAction * get_last_seq_cst_write(ModelAction *curr) const; ModelAction * get_last_seq_cst_fence(thread_id_t tid, const ModelAction *before_fence) const; ModelAction * get_last_unlock(ModelAction *curr) const; - SnapVector * build_may_read_from(ModelAction *curr); + SnapVector * build_may_read_from(ModelAction *curr); ModelAction * process_rmw(ModelAction *curr); - bool r_modification_order(ModelAction *curr, const ModelAction *rf, SnapVector *priorset); + bool r_modification_order(ModelAction *curr, const ModelAction *rf, SnapVector *priorset, bool *canprune); void w_modification_order(ModelAction *curr); void get_release_seq_heads(ModelAction *acquire, ModelAction *read, rel_heads_list_t *release_heads); bool release_seq_heads(const ModelAction *rf, rel_heads_list_t *release_heads) const; @@ -165,8 +164,8 @@ private: HashTable *, uintptr_t, 4> obj_thrd_map; - HashTable mutex_map; - HashTable cond_map; + HashTable mutex_map; + HashTable cond_map; /** * List of pending release sequences. Release sequences might be