+ label = simgrid::xbt::string_printf("[(%ld)] iRecv", issuer->get_pid());
+ break;
+
+ case SIMCALL_COMM_WAIT:
+ if (value == -1) {
+ if (issuer->get_host())
+ label = simgrid::xbt::string_printf("[(%ld)%s] WaitTimeout", issuer->get_pid(),
+ MC_smx_actor_get_host_name(issuer));
+ else
+ label = simgrid::xbt::string_printf("[(%ld)] WaitTimeout", issuer->get_pid());
+ } else {
+ simgrid::kernel::activity::ActivityImpl* remote_act = simcall_comm_wait__getraw__comm(req);
+ simgrid::mc::Remote<simgrid::kernel::activity::CommImpl> temp_comm;
+ mc_model_checker->process().read(temp_comm,
+ remote(static_cast<simgrid::kernel::activity::CommImpl*>(remote_act)));
+ simgrid::kernel::activity::CommImpl* comm = temp_comm.get_buffer();
+
+ smx_actor_t src_proc = mc_model_checker->process().resolve_actor(simgrid::mc::remote(comm->src_actor_.get()));
+ smx_actor_t dst_proc = mc_model_checker->process().resolve_actor(simgrid::mc::remote(comm->dst_actor_.get()));
+ if (issuer->get_host())
+ label = simgrid::xbt::string_printf("[(%ld)%s] Wait [(%ld)->(%ld)]", issuer->get_pid(),
+ MC_smx_actor_get_host_name(issuer), src_proc ? src_proc->get_pid() : 0,
+ dst_proc ? dst_proc->get_pid() : 0);
+ else
+ label = simgrid::xbt::string_printf("[(%ld)] Wait [(%ld)->(%ld)]", issuer->get_pid(),
+ src_proc ? src_proc->get_pid() : 0, dst_proc ? dst_proc->get_pid() : 0);
+ }
+ break;
+
+ case SIMCALL_COMM_TEST: {
+ simgrid::kernel::activity::ActivityImpl* remote_act = simcall_comm_test__getraw__comm(req);
+ simgrid::mc::Remote<simgrid::kernel::activity::CommImpl> temp_comm;
+ mc_model_checker->process().read(temp_comm,
+ remote(static_cast<simgrid::kernel::activity::CommImpl*>(remote_act)));
+ simgrid::kernel::activity::CommImpl* comm = temp_comm.get_buffer();
+ if (comm->src_actor_.get() == nullptr || comm->dst_actor_.get() == nullptr) {
+ if (issuer->get_host())
+ label = simgrid::xbt::string_printf("[(%ld)%s] Test FALSE", issuer->get_pid(),
+ MC_smx_actor_get_host_name(issuer));
+ else
+ label = bprintf("[(%ld)] Test FALSE", issuer->get_pid());
+ } else {
+ if (issuer->get_host())
+ label =
+ simgrid::xbt::string_printf("[(%ld)%s] Test TRUE", issuer->get_pid(), MC_smx_actor_get_host_name(issuer));
+ else
+ label = simgrid::xbt::string_printf("[(%ld)] Test TRUE", issuer->get_pid());
+ }
+ break;