#if SIMGRID_HAVE_MC
xbt_assert(mc_model_checker == nullptr, "This must be called from the client");
#endif
- while (not simix_global->process_to_run.empty()) {
- SIMIX_process_runall();
- for (smx_actor_t const& process : simix_global->process_that_ran) {
+ while (not simix_global->actors_to_run.empty()) {
+ simix_global->run_all_actors();
+ for (smx_actor_t const& process : simix_global->actors_that_ran) {
smx_simcall_t req = &process->simcall;
if (req->call != SIMCALL_NONE && not simgrid::mc::request_is_visible(req))
SIMIX_simcall_handle(req, 0);
#if SIMGRID_HAVE_MC
// If in the MCer, ask the client app since it has all the data
if (mc_model_checker != nullptr) {
- return mc_model_checker->process().actor_is_enabled(actor->pid_);
+ return mc_model_checker->process().actor_is_enabled(actor->get_pid());
}
#endif
return true;
}
/* On the other hand if it hasn't a timeout, check if the comm is ready.*/
- else if (act->detached && act->src_actor_ == nullptr && act->type == SIMIX_COMM_READY)
+ 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_);
}
case SIMCALL_COMM_WAITANY: {
- xbt_dynar_t comms = simcall_comm_waitany__get__comms(req);
- for (unsigned int index = 0; index < comms->used; ++index) {
- simgrid::kernel::activity::CommImpl* act = xbt_dynar_get_as(comms, index, simgrid::kernel::activity::CommImpl*);
- if (act->src_actor_ && act->dst_actor_)
+ simgrid::kernel::activity::CommImpl** comms = simcall_comm_waitany__get__comms(req);
+ size_t count = simcall_comm_waitany__get__count(req);
+ for (unsigned int index = 0; index < count; ++index) {
+ auto* comm = comms[index];
+ if (comm->src_actor_ && comm->dst_actor_)
return true;
}
return false;
if (mutex->owner == nullptr)
return true;
- return mutex->owner->pid_ == req->issuer->pid_;
+ return mutex->owner->get_pid() == req->issuer->get_pid();
}
case SIMCALL_SEM_ACQUIRE: {