X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d1f76158ac21a857f710605005b211e611c2bc44..f5ad0a2a3554dc8f10c8fbba5715b7c92ff1d350:/src/simix/libsmx.cpp diff --git a/src/simix/libsmx.cpp b/src/simix/libsmx.cpp index 16ee544e22..b26dcb7393 100644 --- a/src/simix/libsmx.cpp +++ b/src/simix/libsmx.cpp @@ -111,7 +111,14 @@ smx_activity_t simcall_execution_parallel_start(const char* name, int host_nb, s */ void simcall_execution_cancel(smx_activity_t execution) { - simcall_BODY_execution_cancel(execution); + simgrid::simix::kernelImmediate([execution] { + XBT_DEBUG("Cancel synchro %p", execution.get()); + simgrid::kernel::activity::ExecImplPtr exec = + boost::static_pointer_cast(execution); + + if (exec->surf_exec) + exec->surf_exec->cancel(); + }); } /** @@ -126,8 +133,13 @@ void simcall_execution_set_priority(smx_activity_t execution, double priority) { /* checking for infinite values */ xbt_assert(std::isfinite(priority), "priority is not finite!"); + simgrid::simix::kernelImmediate([execution, priority] { - simcall_BODY_execution_set_priority(execution, priority); + simgrid::kernel::activity::ExecImplPtr exec = + boost::static_pointer_cast(execution); + if (exec->surf_exec) + exec->surf_exec->setSharingWeight(priority); + }); } /** @@ -140,7 +152,12 @@ void simcall_execution_set_priority(smx_activity_t execution, double priority) */ void simcall_execution_set_bound(smx_activity_t execution, double bound) { - simcall_BODY_execution_set_bound(execution, bound); + simgrid::simix::kernelImmediate([execution, bound] { + simgrid::kernel::activity::ExecImplPtr exec = + boost::static_pointer_cast(execution); + if (exec->surf_exec) + static_cast(exec->surf_exec)->setBound(bound); + }); } /** @@ -154,19 +171,6 @@ e_smx_state_t simcall_execution_wait(smx_activity_t execution) return (e_smx_state_t) simcall_BODY_execution_wait(execution); } -/** - * \ingroup simix_process_management - * \brief Kills a SIMIX process. - * - * This function simply kills a process. - * - * \param process poor victim - */ -void simcall_process_kill(smx_actor_t process) -{ - simcall_BODY_process_kill(process); -} - /** * \ingroup simix_process_management * \brief Kills all SIMIX processes.