}
}
-bool ModelExecution::assert_bug(const char *msg)
+void ModelExecution::assert_bug(const char *msg)
{
priv->bugs.push_back(new bug_message(msg));
-
- return false;
+ set_assert();
}
/** @return True, if any bugs have been reported for this execution */
add_normal_write_to_lists(act);
add_write_to_lists(act);
w_modification_order(act);
-// model->get_history()->process_action(act, act->get_tid());
+ model->get_history()->process_action(act, act->get_tid());
return act;
}
}
// Remove writes that violate read modification order
- /*
- for (uint i = 0; i < rf_set->size(); i++) {
- ModelAction * rf = (*rf_set)[i];
- if (!r_modification_order(curr, rf, NULL, NULL, true)) {
- (*rf_set)[i] = rf_set->back();
- rf_set->pop_back();
- }
- }*/
+ uint i = 0;
+ while (i < rf_set->size()) {
+ ModelAction * rf = (*rf_set)[i];
+ if (!r_modification_order(curr, rf, NULL, NULL, true)) {
+ (*rf_set)[i] = rf_set->back();
+ rf_set->pop_back();
+ } else
+ i++;
+ }
while(true) {
int index = fuzzer->selectWrite(curr, rf_set);
}
return true;
}
+
+ ASSERT(false);
+ /* TODO: Following code not needed anymore */
priorset->clear();
(*rf_set)[index] = rf_set->back();
rf_set->pop_back();
ASSERT(curr);
/* Process this action in ModelHistory for records */
-// model->get_history()->process_action( curr, curr->get_tid() );
+ model->get_history()->process_action( curr, curr->get_tid() );
if (curr_thrd->is_blocked() || curr_thrd->is_complete())
scheduler->remove_thread(curr_thrd);