X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=action.cc;h=d8ce567039bfc451c13916aefc6d15b4b5211e38;hb=HEAD;hp=ee980b875988b362a2f6c3402be8dc5e795b69d7;hpb=527eb9241e1b39b6ad4125a71b951d445d4e251e;p=c11tester.git diff --git a/action.cc b/action.cc index ee980b87..d8ce5670 100644 --- a/action.cc +++ b/action.cc @@ -38,14 +38,9 @@ ModelAction::ModelAction(action_type_t type, memory_order order, void *loc, last_fence_release(NULL), cv(NULL), rf_cv(NULL), - trace_ref(NULL), - thrdmap_ref(NULL), action_ref(NULL), - func_ref_count(0), value(value), type(type), - original_type(ATOMIC_NOP), - swap_flag(false), order(order), original_order(order), seq_number(ACTION_INITIAL_CLOCK) @@ -75,14 +70,9 @@ ModelAction::ModelAction(action_type_t type, memory_order order, uint64_t value, last_fence_release(NULL), cv(NULL), rf_cv(NULL), - trace_ref(NULL), - thrdmap_ref(NULL), action_ref(NULL), - func_ref_count(0), value(value), type(type), - original_type(ATOMIC_NOP), - swap_flag(false), order(order), original_order(order), seq_number(ACTION_INITIAL_CLOCK) @@ -111,14 +101,9 @@ ModelAction::ModelAction(action_type_t type, memory_order order, void *loc, last_fence_release(NULL), cv(NULL), rf_cv(NULL), - trace_ref(NULL), - thrdmap_ref(NULL), action_ref(NULL), - func_ref_count(0), value(value), type(type), - original_type(ATOMIC_NOP), - swap_flag(false), order(order), original_order(order), seq_number(ACTION_INITIAL_CLOCK) @@ -126,8 +111,7 @@ ModelAction::ModelAction(action_type_t type, memory_order order, void *loc, /* References to NULL atomic variables can end up here */ ASSERT(loc); this->size = size; - Thread *t = thread_current(); - this->tid = t->get_id(); + this->tid = thread_current_id(); } @@ -151,14 +135,9 @@ ModelAction::ModelAction(action_type_t type, const char * position, memory_order last_fence_release(NULL), cv(NULL), rf_cv(NULL), - trace_ref(NULL), - thrdmap_ref(NULL), action_ref(NULL), - func_ref_count(0), value(value), type(type), - original_type(ATOMIC_NOP), - swap_flag(false), order(order), original_order(order), seq_number(ACTION_INITIAL_CLOCK) @@ -166,8 +145,7 @@ ModelAction::ModelAction(action_type_t type, const char * position, memory_order /* References to NULL atomic variables can end up here */ ASSERT(loc); this->size = size; - Thread *t = thread_current(); - this->tid = t->get_id(); + this->tid = thread_current_id(); } @@ -192,14 +170,9 @@ ModelAction::ModelAction(action_type_t type, const char * position, memory_order last_fence_release(NULL), cv(NULL), rf_cv(NULL), - trace_ref(NULL), - thrdmap_ref(NULL), action_ref(NULL), - func_ref_count(0), value(value), type(type), - original_type(ATOMIC_NOP), - swap_flag(false), order(order), original_order(order), seq_number(ACTION_INITIAL_CLOCK) @@ -222,9 +195,11 @@ ModelAction::~ModelAction() * vectors which have already been rolled back to an unallocated state. */ - /* - if (cv) - delete cv; */ + + if (cv) + delete cv; + if (rf_cv) + delete rf_cv; } int ModelAction::getSize() const { @@ -276,6 +251,10 @@ bool ModelAction::is_wait() const { return type == ATOMIC_WAIT || type == ATOMIC_TIMEDWAIT; } +bool ModelAction::is_timedwait() const { + return type == ATOMIC_TIMEDWAIT; +} + bool ModelAction::is_notify() const { return type == ATOMIC_NOTIFY_ONE || type == ATOMIC_NOTIFY_ALL; } @@ -743,6 +722,9 @@ void ModelAction::print() const model_print("%-4d %-2d %-14s %7s %14p %-#18" PRIx64, seq_number, id_to_int(tid), type_str, mo_str, location, get_return_value()); if (is_read()) { + if (is_write()) { + model_print("(%" PRIx64 ")", get_write_value()); + } if (reads_from) model_print(" %-3d", reads_from->get_seq_number()); else @@ -787,16 +769,3 @@ cdsc::mutex * ModelAction::get_mutex() const else return NULL; } - -/** @brief Swap type with original type */ -void ModelAction::use_original_type() -{ - action_type_t tmp = type; - type = original_type; - original_type = tmp; - - if (swap_flag) - swap_flag = false; - else - swap_flag = true; -}