X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=action.cc;h=39b0f7f6d4847207f0dc2a18da5b0edeffa5776a;hb=8548c711d71b6474802af83f5a4800eb4ac30718;hp=d9aae2d4958253977e9f0256fb87076174e94a67;hpb=ddc42efe21d50de5a6a70f82d0e45d5eea29f5fd;p=model-checker.git diff --git a/action.cc b/action.cc index d9aae2d..39b0f7f 100644 --- a/action.cc +++ b/action.cc @@ -10,6 +10,7 @@ ModelAction::ModelAction(action_type_t type, memory_order order, void *loc, int order(order), location(loc), value(value), + reads_from(NULL), cv(NULL) { Thread *t = thread_current(); @@ -132,6 +133,7 @@ void ModelAction::read_from(const ModelAction *act) ASSERT(cv); if (act->is_release() && this->is_acquire()) cv->merge(act->cv); + reads_from = act; value = act->value; } @@ -178,8 +180,10 @@ void ModelAction::print(void) const type_str = "unknown type"; } - printf("(%3d) Thread: %-2d Action: %-13s MO: %d Loc: %14p Value: %d", + printf("(%3d) Thread: %-2d Action: %-13s MO: %d Loc: %14p Value: %-4d", seq_number, id_to_int(tid), type_str, order, location, value); + if (reads_from) + printf(" Rf: %d", reads_from->get_seq_number()); if (cv) { printf("\t"); cv->print();