X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2f32ccb82b474b69e3100f139e0b602d67ea5f63..12e37132d1b9b141fa8497e17b0629cfd4173c36:/src/s4u/s4u_Actor.cpp diff --git a/src/s4u/s4u_Actor.cpp b/src/s4u/s4u_Actor.cpp index 0138cf83b8..ec1085f1b9 100644 --- a/src/s4u/s4u_Actor.cpp +++ b/src/s4u/s4u_Actor.cpp @@ -178,9 +178,9 @@ double Actor::get_kill_time() void Actor::kill(aid_t pid) // deprecated { smx_actor_t killer = SIMIX_process_self(); - smx_actor_t process = SIMIX_process_from_PID(pid); - if (process != nullptr) { - simgrid::simix::simcall([killer, process] { SIMIX_process_kill(process, killer); }); + smx_actor_t victim = SIMIX_process_from_PID(pid); + if (victim != nullptr) { + simgrid::simix::simcall([killer, victim] { killer->kill(victim); }); } else { std::ostringstream oss; oss << "kill: (" << pid << ") - No such actor" << std::endl; @@ -195,7 +195,7 @@ void Actor::kill() if (pimpl_ == simix_global->maestro_process) pimpl_->exit(); else - SIMIX_process_kill(pimpl_, process); + process->kill(pimpl_); }); } @@ -218,7 +218,7 @@ ActorPtr Actor::by_pid(aid_t pid) void Actor::kill_all() { smx_actor_t self = SIMIX_process_self(); - simgrid::simix::simcall([&self] { SIMIX_process_killall(self); }); + simgrid::simix::simcall([self] { self->kill_all(); }); } std::unordered_map* Actor::get_properties() @@ -295,13 +295,13 @@ void execute(double flops, double priority) exec_init(flops)->set_priority(priority)->start()->wait(); } -void parallel_execute(std::vector hosts, std::vector flops_amounts, - std::vector bytes_amounts) +void parallel_execute(const std::vector& hosts, const std::vector& flops_amounts, + const std::vector& bytes_amounts) { parallel_execute(hosts, flops_amounts, bytes_amounts, -1); } -void parallel_execute(std::vector hosts, std::vector flops_amounts, - std::vector bytes_amounts, double timeout) +void parallel_execute(const std::vector& hosts, const std::vector& flops_amounts, + const std::vector& bytes_amounts, double timeout) { xbt_assert(hosts.size() > 0, "Your parallel executions must span over at least one host."); xbt_assert(hosts.size() == flops_amounts.size() || flops_amounts.empty(), @@ -321,7 +321,8 @@ void parallel_execute(std::vector hosts, std::vector flops_a } // deprecated -void parallel_execute(int host_nb, s4u::Host** host_list, double* flops_amount, double* bytes_amount, double timeout) +void parallel_execute(int host_nb, s4u::Host* const* host_list, const double* flops_amount, const double* bytes_amount, + double timeout) { smx_activity_t s = simcall_execution_parallel_start("", host_nb, host_list, flops_amount, bytes_amount, /* rate */ -1, timeout); @@ -331,7 +332,7 @@ void parallel_execute(int host_nb, s4u::Host** host_list, double* flops_amount, } // deprecated -void parallel_execute(int host_nb, sg_host_t* host_list, double* flops_amount, double* bytes_amount) +void parallel_execute(int host_nb, s4u::Host* const* host_list, const double* flops_amount, const double* bytes_amount) { smx_activity_t s = simcall_execution_parallel_start("", host_nb, host_list, flops_amount, bytes_amount, /* rate */ -1, /*timeout*/ -1); @@ -642,3 +643,8 @@ void sg_actor_yield() { simgrid::s4u::this_actor::yield(); } + +void sg_actor_sleep_for(double duration) +{ + simgrid::s4u::this_actor::sleep_for(duration); +}