X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5901a7d814ef3c475058d0cc958bebc21c81238c..8a0e2b82a1c0981a84e67f1bb4afb6e16fbf8c3a:/src/s4u/s4u_Actor.cpp?ds=sidebyside diff --git a/src/s4u/s4u_Actor.cpp b/src/s4u/s4u_Actor.cpp index 31746fcca3..105cd93859 100644 --- a/src/s4u/s4u_Actor.cpp +++ b/src/s4u/s4u_Actor.cpp @@ -74,7 +74,12 @@ void Actor::set_auto_restart(bool autorestart) simgrid::simix::simcall([this, autorestart]() { pimpl_->auto_restart = autorestart; }); } -void Actor::on_exit(int_f_pvoid_pvoid_t fun, void* data) +void Actor::on_exit(int_f_pvoid_pvoid_t fun, void* data) /* deprecated */ +{ + simgrid::simix::simcall([this, fun, data] { SIMIX_process_on_exit(pimpl_, fun, data); }); +} + +void Actor::on_exit(std::function fun, void* data) { simgrid::simix::simcall([this, fun, data] { SIMIX_process_on_exit(pimpl_, fun, data); }); } @@ -212,7 +217,7 @@ void Actor::kill_all() simgrid::simix::simcall([&self] { SIMIX_process_killall(self); }); } -std::map* Actor::get_properties() +std::unordered_map* Actor::get_properties() { return simgrid::simix::simcall([this] { return this->pimpl_->get_properties(); }); } @@ -366,7 +371,7 @@ void kill() simgrid::simix::simcall([process] { SIMIX_process_kill(process, process); }); } -void on_exit(int_f_pvoid_pvoid_t fun, void* data) +void on_exit(std::function fun, void* data) { SIMIX_process_self()->iface()->on_exit(fun, data); } @@ -408,9 +413,13 @@ bool isSuspended() /* deprecated */ { return is_suspended(); } -void onExit /* deprecated */ (int_f_pvoid_pvoid_t fun, void* data) +void on_exit(int_f_pvoid_pvoid_t fun, void* data) /* deprecated */ +{ + SIMIX_process_self()->iface()->on_exit([fun](int a, void* b) { fun((void*)(intptr_t)a, b); }, data); +} +void onExit(int_f_pvoid_pvoid_t fun, void* data) /* deprecated */ { - on_exit(fun, data); + on_exit([fun](int a, void* b) { fun((void*)(intptr_t)a, b); }, data); } } // namespace this_actor @@ -491,11 +500,11 @@ xbt_dict_t sg_actor_get_properties(sg_actor_t actor) { xbt_assert(actor != nullptr, "Invalid parameter: First argument must not be nullptr"); xbt_dict_t as_dict = xbt_dict_new_homogeneous(xbt_free_f); - std::map* props = actor->get_properties(); + std::unordered_map* props = actor->get_properties(); if (props == nullptr) return nullptr; - for (auto const& elm : *props) { - xbt_dict_set(as_dict, elm.first.c_str(), xbt_strdup(elm.second.c_str()), nullptr); + for (auto const& kv : *props) { + xbt_dict_set(as_dict, kv.first.c_str(), xbt_strdup(kv.second.c_str()), nullptr); } return as_dict; }