void simcall_process_join(smx_actor_t process, double timeout)
{
- simcall_BODY_process_join(process, timeout);
+ SIMIX_process_self()->join(process, timeout);
}
-/**
- * @ingroup simix_process_management
- * @brief Suspends an actor
- */
void simcall_process_suspend(smx_actor_t process)
{
- simcall_BODY_process_suspend(process);
+ SIMIX_process_self()->iface()->suspend();
}
-/**
- * @ingroup simix_process_management
- * @brief Creates a new sleep SIMIX synchro.
- *
- * This function creates a SURF action and allocates the data necessary
- * to create the SIMIX synchro. It can raise a HostFailureException if the
- * host crashed. The default SIMIX name of the synchro is "sleep".
- *
- * @param duration Time duration of the sleep.
- * @return A result telling whether the sleep was successful
- */
e_smx_state_t simcall_process_sleep(double duration)
{
- /* checking for infinite values */
- xbt_assert(std::isfinite(duration), "duration is not finite!");
- return (e_smx_state_t) simcall_BODY_process_sleep(duration);
+ SIMIX_process_self()->sleep(duration);
+ return SIMIX_DONE;
}
/**
{
xbt_assert(mbox, "No rendez-vous point defined for iprobe");
- return simgrid::simix::simcall([mbox, type, match_fun, data] { return mbox->iprobe(type, match_fun, data); });
+ return simgrid::kernel::actor::simcall([mbox, type, match_fun, data] { return mbox->iprobe(type, match_fun, data); });
}
/**
// get there before the initialization
xbt_abort();
}
- return simgrid::simix::simcall([] { return new simgrid::kernel::activity::MutexImpl(); });
+ return simgrid::kernel::actor::simcall([] { return new simgrid::kernel::activity::MutexImpl(); });
}
/**
*/
smx_cond_t simcall_cond_init()
{
- return simgrid::simix::simcall([] { return new simgrid::kernel::activity::ConditionVariableImpl(); });
+ return simgrid::kernel::actor::simcall([] { return new simgrid::kernel::activity::ConditionVariableImpl(); });
}
/**
return (e_smx_state_t)simcall_BODY_io_wait(static_cast<simgrid::kernel::activity::IoImpl*>(io.get()));
}
-void simcall_run_kernel(std::function<void()> const& code)
+void simcall_run_kernel(std::function<void()> const& code, simgrid::mc::SimcallInspector* t)
{
+ SIMIX_process_self()->simcall.inspector_ = t;
simcall_BODY_run_kernel(&code);
}
-void simcall_run_blocking(std::function<void()> const& code)
+void simcall_run_blocking(std::function<void()> const& code, simgrid::mc::SimcallInspector* t = nullptr)
{
+ SIMIX_process_self()->simcall.inspector_ = t;
simcall_BODY_run_blocking(&code);
}
/* ****************************DEPRECATED CALLS******************************* */
void simcall_process_set_kill_time(smx_actor_t process, double kill_time)
{
- simgrid::simix::simcall([process, kill_time] { process->set_kill_time(kill_time); });
+ simgrid::kernel::actor::simcall([process, kill_time] { process->set_kill_time(kill_time); });
}
void simcall_comm_cancel(smx_activity_t comm)
{
- simgrid::simix::simcall([comm] { boost::static_pointer_cast<simgrid::kernel::activity::CommImpl>(comm)->cancel(); });
+ simgrid::kernel::actor::simcall(
+ [comm] { boost::static_pointer_cast<simgrid::kernel::activity::CommImpl>(comm)->cancel(); });
}
void simcall_execution_cancel(smx_activity_t exec)
{
- simgrid::simix::simcall([exec] { boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(exec)->cancel(); });
+ simgrid::kernel::actor::simcall(
+ [exec] { boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(exec)->cancel(); });
}
void simcall_execution_set_bound(smx_activity_t exec, double bound)
{
- simgrid::simix::simcall(
+ simgrid::kernel::actor::simcall(
[exec, bound] { boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(exec)->set_bound(bound); });
}
smx_activity_t simcall_execution_start(const std::string& name, const std::string& category, double flops_amount,
double sharing_penalty, double bound, sg_host_t host)
{
- return simgrid::simix::simcall([name, category, flops_amount, sharing_penalty, bound, host] {
+ return simgrid::kernel::actor::simcall([name, category, flops_amount, sharing_penalty, bound, host] {
simgrid::kernel::activity::ExecImpl* exec = new simgrid::kernel::activity::ExecImpl();
(*exec)
.set_name(name)
flops_parallel_amount = std::vector<double>(flops_amount, flops_amount + host_nb);
if (bytes_amount != nullptr)
bytes_parallel_amount = std::vector<double>(bytes_amount, bytes_amount + host_nb * host_nb);
- return simgrid::simix::simcall([name, hosts, flops_parallel_amount, bytes_parallel_amount, timeout] {
+ return simgrid::kernel::actor::simcall([name, hosts, flops_parallel_amount, bytes_parallel_amount, timeout] {
simgrid::kernel::activity::ExecImpl* exec = new simgrid::kernel::activity::ExecImpl();
(*exec)
.set_name(name)