From: Frederic Suter Date: Mon, 4 Feb 2019 11:32:44 +0000 (+0100) Subject: SIMIX_process_change_host becomes ActorImpl::change_host X-Git-Tag: v3_22~391 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/e3e8e37466f1b6409356444985ec349103fce08d SIMIX_process_change_host becomes ActorImpl::change_host --- diff --git a/src/s4u/s4u_Actor.cpp b/src/s4u/s4u_Actor.cpp index 7e1d404bc6..949daaa711 100644 --- a/src/s4u/s4u_Actor.cpp +++ b/src/s4u/s4u_Actor.cpp @@ -106,7 +106,7 @@ void Actor::migrate(Host* new_host) xbt_assert(exec.get() != nullptr, "We can only migrate blocked actors when they are blocked on executions."); exec->migrate(new_host); } - SIMIX_process_change_host(this->pimpl_, new_host); + this->pimpl_->change_host(new_host); }); s4u::Actor::on_migration_end(this); diff --git a/src/simix/ActorImpl.cpp b/src/simix/ActorImpl.cpp index cfec9024c8..a1d2bda2a7 100644 --- a/src/simix/ActorImpl.cpp +++ b/src/simix/ActorImpl.cpp @@ -262,6 +262,13 @@ void ActorImpl::throw_exception(std::exception_ptr e) waiting_synchro = nullptr; } +void ActorImpl::change_host(sg_host_t dest) +{ + simgrid::xbt::intrusive_erase(host_->pimpl_->process_list_, *this); + host_ = dest; + dest->pimpl_->process_list_.push_back(*this); +} + ActorImplPtr ActorImpl::create(std::string name, simgrid::simix::ActorCode code, void* data, simgrid::s4u::Host* host, std::unordered_map* properties, smx_actor_t parent_actor) { @@ -550,13 +557,6 @@ void SIMIX_process_killall(smx_actor_t issuer) SIMIX_process_kill(kv.second, issuer); } -void SIMIX_process_change_host(smx_actor_t actor, sg_host_t dest) -{ - xbt_assert((actor != nullptr), "Invalid parameters"); - simgrid::xbt::intrusive_erase(actor->host_->pimpl_->process_list_, *actor); - actor->host_ = dest; - dest->pimpl_->process_list_.push_back(*actor); -} void simcall_HANDLER_process_suspend(smx_simcall_t simcall, smx_actor_t actor) { diff --git a/src/simix/ActorImpl.hpp b/src/simix/ActorImpl.hpp index e258c5ca14..051511c0f1 100644 --- a/src/simix/ActorImpl.hpp +++ b/src/simix/ActorImpl.hpp @@ -106,6 +106,7 @@ public: void* get_user_data() { return userdata_; } /** Ask the actor to throw an exception right away */ void throw_exception(std::exception_ptr e); + void change_host(sg_host_t dest); }; class ProcessArg { @@ -163,7 +164,6 @@ XBT_PRIVATE void SIMIX_process_killall(smx_actor_t issuer); XBT_PRIVATE void SIMIX_process_cleanup(smx_actor_t arg); XBT_PRIVATE void SIMIX_process_empty_trash(); XBT_PRIVATE void SIMIX_process_yield(smx_actor_t self); -XBT_PRIVATE void SIMIX_process_change_host(smx_actor_t process, sg_host_t dest); extern void (*SMPI_switch_data_segment)(simgrid::s4u::ActorPtr actor);