X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=model.cc;h=f320b8fab5ffdcfddc487f294afad91c80cb4022;hb=0afac4a7183b60920f562ebe26ce49d29114645c;hp=0ef825d69d1ae135f1c7cafa934c7867ad43193a;hpb=d5c56ae55e7adf3e489de357ed5c80c640b67ec9;p=model-checker.git diff --git a/model.cc b/model.cc index 0ef825d..f320b8f 100644 --- a/model.cc +++ b/model.cc @@ -235,7 +235,7 @@ void ModelChecker::wake_up_sleeping_actions(ModelAction * curr) { Thread *thr=get_thread(tid); if ( scheduler->get_enabled(thr) == THREAD_SLEEP_SET ) { ModelAction *pending_act=thr->get_pending(); - if (pending_act->could_synchronize_with(curr)) { + if ((!curr->is_rmwr())&&pending_act->could_synchronize_with(curr)) { //Remove this thread from sleep set scheduler->remove_sleep(thr); } @@ -441,7 +441,7 @@ ModelAction * ModelChecker::get_next_backtrack() */ bool ModelChecker::process_read(ModelAction *curr, bool second_part_of_rmw) { - uint64_t value; + uint64_t value = VALUE_NONE; bool updated = false; while (true) { const ModelAction *reads_from = curr->get_node()->get_read_from();