- if (act->comm.detached && act->comm.src_proc == NULL
- && act->comm.type == SIMIX_COMM_READY)
- return (act->comm.dst_proc != NULL);
- }
- return (act->comm.src_proc && act->comm.dst_proc);
-
- case SIMCALL_COMM_WAITANY: {
-#ifdef HAVE_MC
- xbt_dynar_t comms;
- s_xbt_dynar_t comms_buffer;
- size_t buffer_size;
- if (mc_mode == MC_MODE_SERVER) {
- // Read dynar:
- MC_process_read_simple(&mc_model_checker->process(),
- &comms_buffer, simcall_comm_waitany__get__comms(req), sizeof(comms_buffer));
- assert(comms_buffer.elmsize == sizeof(act));
- buffer_size = comms_buffer.elmsize * comms_buffer.used;
- comms = &comms_buffer;
- } else {
- comms = simcall_comm_waitany__get__comms(req);
+ else if (act->detached && act->src_actor_ == nullptr &&
+ act->type == simgrid::kernel::activity::CommImpl::Type::READY)
+ return (act->dst_actor_ != nullptr);
+ return (act->src_actor_ && act->dst_actor_);