+
+ if (next < 0 || not state->is_actor_enabled(next)) {
+ if (next >= 0) { // Actor is not enabled, then
+ XBT_INFO("Reduction %s wants to execute a disabled transition %s. If it's ODPOR, ReversibleRace is suboptimal.",
+ to_c_str(reduction_mode_),
+ state->get_actors_list().at(next).get_transition()->to_string(true).c_str());
+ if (reduction_mode_ == ReductionMode::odpor) {
+ XBT_INFO("Current trace:");
+ for (auto elm : get_textual_trace())
+ XBT_ERROR("%s", elm.c_str());
+ // Remove the disabled transition from the wakeup tree so that ODPOR doesn't try it again
+ state->remove_subtree_at_aid(next);
+ state->add_sleep_set(state->get_actors_list().at(next).get_transition());
+ }
+ }
+ // If there is no more transition in the current state (or if ODPOR picked an actor that is not enabled --
+ // ReversibleRace is an overapproximation), backtrace