}
}
-void SIMIX_simcall_exit(smx_activity_t activity)
-{
- if (activity != nullptr) // When migrating, the surf activity is disconnected from its simix activity before cancel
- activity->post();
-}
-
void SIMIX_run_kernel(std::function<void()> const* code)
{
(*code)();
/** Kernel code for run_blocking
*
- * The implementtion looks a lot like SIMIX_run_kernel ^^
+ * The implementation looks a lot like SIMIX_run_kernel ^^
*
* However, this `run_blocking` is blocking so the process will not be woken
* up until `SIMIX_simcall_answer(simcall)`` is called by the kernel.
XBT_PRIVATE void SIMIX_simcall_answer(smx_simcall_t simcall);
XBT_PRIVATE void SIMIX_simcall_handle(smx_simcall_t simcall, int value);
-XBT_PRIVATE void SIMIX_simcall_exit(smx_activity_t synchro);
XBT_PRIVATE const char* SIMIX_simcall_name(e_smx_simcall_t kind);
XBT_PRIVATE void SIMIX_run_kernel(std::function<void()> const* code);
XBT_PRIVATE void SIMIX_run_blocking(std::function<void()> const* code);
XBT_DEBUG("Handling the processes whose action failed (if any)");
while ((action = model->extract_failed_action())) {
XBT_DEBUG(" Handling Action %p",action);
- SIMIX_simcall_exit(action->get_activity());
+ if (action->get_activity() != nullptr)
+ simgrid::kernel::activity::ActivityImplPtr(action->get_activity())->post();
}
XBT_DEBUG("Handling the processes whose action terminated normally (if any)");
while ((action = model->extract_done_action())) {
if (action->get_activity() == nullptr)
XBT_DEBUG("probably vcpu's action %p, skip", action);
else
- SIMIX_simcall_exit(action->get_activity());
+ simgrid::kernel::activity::ActivityImplPtr(action->get_activity())->post();
}
}
}