X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/30efde3b7477f9d1e177909d76db4e38034dca40..59378580f8bb437fd2a9ed435f7cad27e76c338f:/src/simix/libsmx.cpp diff --git a/src/simix/libsmx.cpp b/src/simix/libsmx.cpp index 6af48805e9..d774d3cf45 100644 --- a/src/simix/libsmx.cpp +++ b/src/simix/libsmx.cpp @@ -110,11 +110,12 @@ 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); - + simgrid::kernel::activity::ExecImplPtr exec = + boost::static_pointer_cast(execution); + if (not exec->surf_exec) + return; + simgrid::simix::kernelImmediate([exec] { + XBT_DEBUG("Cancel synchro %p", exec.get()); if (exec->surf_exec) exec->surf_exec->cancel(); });