Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SIMIX_process_change_host becomes ActorImpl::change_host
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Mon, 4 Feb 2019 11:32:44 +0000 (12:32 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Mon, 4 Feb 2019 11:32:44 +0000 (12:32 +0100)
src/s4u/s4u_Actor.cpp
src/simix/ActorImpl.cpp
src/simix/ActorImpl.hpp

index 7e1d404..949daaa 100644 (file)
@@ -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);
index cfec902..a1d2bda 100644 (file)
@@ -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<std::string, std::string>* 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)
 {
index e258c5c..051511c 100644 (file)
@@ -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);