num_feasible_executions++;
}
- DEBUG("Number of acquires waiting on pending release sequences: %lu\n",
+ DEBUG("Number of acquires waiting on pending release sequences: %zu\n",
pending_rel_seqs->size());
if (isfinalfeasible() || DBG_ENABLED())
action_list_t::reverse_iterator rit;
for (rit = list->rbegin(); rit != list->rend(); rit++) {
ModelAction *prev = *rit;
- if (act->is_synchronizing(prev))
+ if (prev->could_synchronize_with(act))
return prev;
}
break;
}
added = true;
break;
- } else if (act->is_read() && !act->is_synchronizing(curr) &&
+ } else if (act->is_read() && !act->could_synchronize_with(curr) &&
!act->same_thread(curr)) {
/* We have an action that:
(1) did not happen before us
bool future_ordered = false;
ModelAction *last = get_last_action(int_to_id(i));
- if (last && (rf->happens_before(last) ||
- get_thread(int_to_id(i))->is_complete()))
+ Thread *th = get_thread(int_to_id(i));
+ if ((last && rf->happens_before(last)) ||
+ !scheduler->is_enabled(th) ||
+ th->is_complete())
future_ordered = true;
for (rit = list->rbegin(); rit != list->rend(); rit++) {
const ModelAction *act = promise->get_action();
if (!act->happens_before(curr) &&
act->is_read() &&
- !act->is_synchronizing(curr) &&
+ !act->could_synchronize_with(curr) &&
!act->same_thread(curr) &&
promise->get_value() == curr->get_value()) {
curr->get_node()->set_promise(i);