X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9ad151ad8b1d4720095739f206a92a090ff4567f..8c93aab46d2f1dd9bfff43471ea78a9369aa4762:/src/simix/libsmx.cpp diff --git a/src/simix/libsmx.cpp b/src/simix/libsmx.cpp index aa0a3c42a7..2735d02016 100644 --- a/src/simix/libsmx.cpp +++ b/src/simix/libsmx.cpp @@ -520,13 +520,6 @@ void simcall_process_set_data(smx_process_t process, void *data) simgrid::simix::kernel(std::bind(SIMIX_process_set_data, process, data)); } -static void kill_process_from_timer(void* arg) -{ - smx_process_t process = (smx_process_t) arg; - simix_global->kill_process_function(process); - process->kill_timer=NULL; -} - /** * \ingroup simix_process_management * \brief Set the kill time of a process. @@ -534,14 +527,14 @@ static void kill_process_from_timer(void* arg) void simcall_process_set_kill_time(smx_process_t process, double kill_time) { - if (kill_time > SIMIX_get_clock()) { - if (simix_global->kill_process_function) { - XBT_DEBUG("Set kill time %f for process %s(%s)", - kill_time, process->name.c_str(), - sg_host_get_name(process->host)); - process->kill_timer = SIMIX_timer_set(kill_time, kill_process_from_timer, process); - } - } + if (kill_time <= SIMIX_get_clock() || simix_global->kill_process_function == nullptr) + return; + XBT_DEBUG("Set kill time %f for process %s(%s)", + kill_time, process->name.c_str(), sg_host_get_name(process->host)); + process->kill_timer = SIMIX_timer_set(kill_time, [=] { + simix_global->kill_process_function(process); + process->kill_timer=NULL; + }); } /** * \ingroup simix_process_management