msg_actor = (simgrid::msg::ActorExt*)SIMIX_process_self_get_data();
SIMIX_process_self_set_data(nullptr);
} else {
- msg_actor = (simgrid::msg::ActorExt*)smx_actor->data;
+ msg_actor = (simgrid::msg::ActorExt*)smx_actor->userdata;
simcall_process_set_data(smx_actor, nullptr);
}
/* Let's create the process: SIMIX may decide to start it right now, even before returning the flow control to us */
smx_actor_t process =
- SIMIX_process_attach(name, new simgrid::msg::ActorExt(data), host->cname(), properties, nullptr);
+ SIMIX_process_attach(name, new simgrid::msg::ActorExt(data), host->getCname(), properties, nullptr);
if (not process)
xbt_die("Could not attach");
simcall_process_on_exit(process,(int_f_pvoid_pvoid_t)TRACE_msg_process_kill,process);
*/
void MSG_process_kill(msg_process_t process)
{
- simcall_process_kill(process->getImpl());
+ process->kill();
}
/**
xbt_assert(process != nullptr, "Invalid parameter: first parameter must not be nullptr!");
/* get from SIMIX the MSG process data, and then the user data */
- simgrid::msg::ActorExt* msgExt = (simgrid::msg::ActorExt*)process->getImpl()->data;
+ simgrid::msg::ActorExt* msgExt = (simgrid::msg::ActorExt*)process->getImpl()->userdata;
if (msgExt)
return msgExt->data;
else
{
xbt_assert(process != nullptr, "Invalid parameter: first parameter must not be nullptr!");
- static_cast<simgrid::msg::ActorExt*>(process->getImpl()->data)->data = data;
+ static_cast<simgrid::msg::ActorExt*>(process->getImpl()->userdata)->data = data;
return MSG_OK;
}
*/
const char *MSG_process_get_name(msg_process_t process)
{
- return process->cname();
+ return process->getCname();
}
/** \ingroup m_process_management
* If the flag is set to 1, the process will be automatically restarted when its host comes back up.
*/
XBT_PUBLIC(void) MSG_process_auto_restart_set(msg_process_t process, int auto_restart) {
- simcall_process_auto_restart_set(process->getImpl(), auto_restart);
+ process->setAutoRestart(auto_restart);
}
/**
* \ingroup m_process_management
* \brief Restarts a process from the beginning.
*/
XBT_PUBLIC(msg_process_t) MSG_process_restart(msg_process_t process) {
- return simcall_process_restart(process->getImpl())->ciface();
+ return simgrid::simix::kernelImmediate(
+ [process]() { return process->getImpl()->restart(process->getImpl())->ciface(); });
}
/** @ingroup m_process_management