+void AppSide::handle_actors_status() const
+{
+ auto const& actor_list = kernel::EngineImpl::get_instance()->get_actor_list();
+ int count = actor_list.size();
+ XBT_DEBUG("Serialize the actors to answer ACTORS_STATUS from the checker. %d actors to go.", count);
+
+ struct s_mc_message_actors_status_answer_t answer {
+ MessageType::ACTORS_STATUS_REPLY, count
+ };
+ std::vector<s_mc_message_actors_status_one_t> status(count);
+ int i = 0;
+ for (auto const& [aid, actor] : actor_list) {
+ status[i].aid = aid;
+ status[i].enabled = mc::actor_is_enabled(actor);
+ status[i].max_considered = actor->simcall_.observer_->get_max_consider();
+ i++;
+ }
+ xbt_assert(channel_.send(answer) == 0, "Could not send ACTORS_STATUS_REPLY msg");
+ if (answer.count > 0) {
+ size_t size = status.size() * sizeof(s_mc_message_actors_status_one_t);
+ xbt_assert(channel_.send(status.data(), size) == 0, "Could not send ACTORS_STATUS_REPLY data");
+ }
+}