- /* For each actor in the previous sleep set, keep it if it is not dependent with current transition.
- * And if we kept it and the actor is enabled in this state, mark the actor as already done, so that
- * it is not explored*/
- for (auto& [aid, transition] : previous_state->get_sleep_set()) {
-
- if (not previous_state->get_transition()->depends(&transition)) {
-
- sleep_set_.emplace(aid, transition);
- if (actors_to_run_.count(aid) != 0) {
- XBT_DEBUG("Actor %ld will not be explored, for it is in the sleep set", aid);
-
- actors_to_run_.at(aid).mark_done();
+
+ /* If we want sleep set reduction, copy the sleep set and eventually removes things from it */
+ if (_sg_mc_sleep_set) {
+ /* For each actor in the previous sleep set, keep it if it is not dependent with current transition.
+ * And if we kept it and the actor is enabled in this state, mark the actor as already done, so that
+ * it is not explored*/
+ for (auto& [aid, transition] : parent_state_->get_sleep_set()) {
+
+ if (not parent_state_->get_transition()->depends(&transition)) {
+
+ sleep_set_.emplace(aid, transition);
+ if (actors_to_run_.count(aid) != 0) {
+ XBT_DEBUG("Actor %ld will not be explored, for it is in the sleep set", aid);
+
+ actors_to_run_.at(aid).mark_done();
+ }
+ } else
+ XBT_DEBUG("Transition >>%s<< removed from the sleep set because it was dependent with >>%s<<",
+ transition.to_string().c_str(), parent_state_->get_transition()->to_string().c_str());