fix bug
authorweiyu <weiyuluo1232@gmail.com>
Wed, 31 Jul 2019 08:27:03 +0000 (01:27 -0700)
committerweiyu <weiyuluo1232@gmail.com>
Wed, 31 Jul 2019 08:27:03 +0000 (01:27 -0700)
funcnode.cc
history.cc

index 1e08f1c..2b25254 100644 (file)
@@ -124,17 +124,7 @@ void FuncNode::store_read(ModelAction * act, uint32_t tid)
        read_map->put(location, read_from_val);
 
        /* Store the memory locations where atomic reads happen */
        read_map->put(location, read_from_val);
 
        /* Store the memory locations where atomic reads happen */
-       bool push_loc = true;
-       mllnode<void *> * it;
-       for (it = read_locations.begin();it != NULL;it=it->getNext()) {
-               if (location == it->getVal()) {
-                       push_loc = false;
-                       break;
-               }
-       }
-
-       if (push_loc)
-               read_locations.push_back(location);
+       // read_locations.add(location);
 }
 
 uint64_t FuncNode::query_last_read(void * location, uint32_t tid)
 }
 
 uint64_t FuncNode::query_last_read(void * location, uint32_t tid)
index 5af063e..60bda96 100644 (file)
@@ -29,7 +29,7 @@ void ModelHistory::enter_function(const uint32_t func_id, thread_id_t tid)
        if ( thrd_func_list->size() <= id ) {
                uint oldsize = thrd_func_list->size();
                thrd_func_list->resize( id + 1 );
        if ( thrd_func_list->size() <= id ) {
                uint oldsize = thrd_func_list->size();
                thrd_func_list->resize( id + 1 );
-               for(uint i=oldsize;i<id+1;i++) {
+               for(uint i = oldsize; i < id + 1; i++) {
                        new(&(*thrd_func_list)[i]) func_id_list_t();
                }
                thrd_func_inst_lists->resize( id + 1 );
                        new(&(*thrd_func_list)[i]) func_id_list_t();
                }
                thrd_func_inst_lists->resize( id + 1 );
@@ -94,6 +94,11 @@ void ModelHistory::resize_func_nodes(uint32_t new_size)
 
 void ModelHistory::process_action(ModelAction *act, thread_id_t tid)
 {
 
 void ModelHistory::process_action(ModelAction *act, thread_id_t tid)
 {
+       action_type act_type = act->get_type();
+       if (act_type == THREAD_FINISH || act_type == THREAD_JOIN ||
+               act_type == PTHREAD_JOIN || act_type == THREADONLY_FINISH)
+               return;
+
        /* return if thread i has not entered any function or has exited
           from all functions */
        SnapVector<func_id_list_t> * thrd_func_list = model->get_execution()->get_thrd_func_list();
        /* return if thread i has not entered any function or has exited
           from all functions */
        SnapVector<func_id_list_t> * thrd_func_list = model->get_execution()->get_thrd_func_list();