Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Also send the disabled transitions over: UDPOR needs it
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Sat, 15 Apr 2023 21:50:48 +0000 (23:50 +0200)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Sat, 15 Apr 2023 21:59:23 +0000 (23:59 +0200)
src/mc/api/RemoteApp.cpp
src/mc/remote/AppSide.cpp

index 959d191..5511a27 100644 (file)
@@ -115,6 +115,9 @@ void RemoteApp::get_actors_status(std::map<aid_t, ActorState>& whereto) const
   //                    <----- send ACTORS_STATUS_REPLY_COUNT
   //                    <----- send `N` ACTORS_STATUS_REPLY_TRANSITION (s_mc_message_actors_status_one_t)
   //                    <----- send `M` ACTORS_STATUS_REPLY_SIMCALL (s_mc_message_simcall_probe_one_t)
+  //
+  // Note that we also receive disabled transitions, because UDPOR needs it.
+
   checker_side_->get_channel().send(MessageType::ACTORS_STATUS);
 
   s_mc_message_actors_status_answer_t answer;
@@ -140,7 +143,7 @@ void RemoteApp::get_actors_status(std::map<aid_t, ActorState>& whereto) const
 
   for (const auto& actor : status) {
     std::vector<std::shared_ptr<Transition>> actor_transitions;
-    int n_transitions = actor.enabled ? actor.max_considered : 0;
+    int n_transitions = actor.max_considered;
     for (int times_considered = 0; times_considered < n_transitions; times_considered++) {
       s_mc_message_simcall_probe_one_t probe;
       ssize_t received = checker_side_->get_channel().receive(probe);
index 47a4482..450546c 100644 (file)
@@ -247,8 +247,6 @@ void AppSide::handle_actors_status() const
   // Serialize each transition to describe what each actor is doing
   XBT_DEBUG("Deliver ACTOR_TRANSITION_PROBE payload");
   for (const auto& actor_status : status) {
-    if (not actor_status.enabled)
-      continue;
 
     const auto& actor        = actor_list.at(actor_status.aid);
     const int max_considered = actor_status.max_considered;