X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=model.cc;h=843034d31acec815eb8c8943d6910eb074103f0b;hb=ac8e176cd4a8756244c12dbbcaf961d27bfc8a74;hp=1d3e0c4901b19095dda5091ba662d1b92f1a5aeb;hpb=43974636b8a2773c4cd8f6f1a2537e5d52b3145b;p=model-checker.git diff --git a/model.cc b/model.cc index 1d3e0c4..843034d 100644 --- a/model.cc +++ b/model.cc @@ -254,8 +254,9 @@ Thread * ModelChecker::get_next_thread(ModelAction *curr) tid = next->get_tid(); node_stack->pop_restofstack(2); } else { + ASSERT(prevnode); /* Make a different thread execute for next step */ - scheduler->add_sleep(thread_map->get(id_to_int(next->get_tid()))); + scheduler->add_sleep(get_thread(next->get_tid())); tid = prevnode->get_next_backtrack(); /* Make sure the backtracked thread isn't sleeping. */ node_stack->pop_restofstack(1); @@ -1295,7 +1296,7 @@ void ModelChecker::check_curr_backtracking(ModelAction *curr) Node *currnode = curr->get_node(); Node *parnode = currnode->get_parent(); - if (!parnode->backtrack_empty() || + if ((parnode && !parnode->backtrack_empty()) || !currnode->misc_empty() || !currnode->read_from_empty() || !currnode->future_value_empty() ||