X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/19e4a01d6e38e856dafa1a08942143a8ec7f5e34..cc4ca208c5e056ac569cd07e08f09a416f3606fe:/src/simix/libsmx.cpp?ds=sidebyside diff --git a/src/simix/libsmx.cpp b/src/simix/libsmx.cpp index 6af48805e9..c6b6e1c78e 100644 --- a/src/simix/libsmx.cpp +++ b/src/simix/libsmx.cpp @@ -55,15 +55,14 @@ void simcall_call(smx_actor_t actor) * \param bound * \return A new SIMIX execution synchronization */ -smx_activity_t simcall_execution_start(const char *name, - double flops_amount, - double priority, double bound) +smx_activity_t simcall_execution_start(const char* name, double flops_amount, double priority, double bound, + simgrid::s4u::Host* host) { /* checking for infinite values */ xbt_assert(std::isfinite(flops_amount), "flops_amount is not finite!"); xbt_assert(std::isfinite(priority), "priority is not finite!"); - return simcall_BODY_execution_start(name, flops_amount, priority, bound); + return simcall_BODY_execution_start(name, flops_amount, priority, bound, host); } /** @@ -110,13 +109,14 @@ smx_activity_t simcall_execution_parallel_start(const char* name, int host_nb, s */ void simcall_execution_cancel(smx_activity_t 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(); + simgrid::kernel::activity::ExecImplPtr exec = + boost::static_pointer_cast(execution); + if (not exec->surfAction_) + return; + simgrid::simix::kernelImmediate([exec] { + XBT_DEBUG("Cancel synchro %p", exec.get()); + if (exec->surfAction_) + exec->surfAction_->cancel(); }); } @@ -136,8 +136,8 @@ void simcall_execution_set_priority(smx_activity_t execution, double priority) simgrid::kernel::activity::ExecImplPtr exec = boost::static_pointer_cast(execution); - if (exec->surf_exec) - exec->surf_exec->setSharingWeight(priority); + if (exec->surfAction_) + exec->surfAction_->setSharingWeight(priority); }); } @@ -154,8 +154,8 @@ void simcall_execution_set_bound(smx_activity_t execution, double 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); + if (exec->surfAction_) + exec->surfAction_->setBound(bound); }); } @@ -170,6 +170,11 @@ e_smx_state_t simcall_execution_wait(smx_activity_t execution) return (e_smx_state_t) simcall_BODY_execution_wait(execution); } +e_smx_state_t simcall_execution_test(smx_activity_t execution) +{ + return (e_smx_state_t)simcall_BODY_execution_test(execution); +} + /** * \ingroup simix_process_management * \brief Kills all SIMIX processes.