Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use an ActorPtr as parameter to smpi_switch_data_segemnt.
[simgrid.git] / src / simix / ActorImpl.cpp
index ce6094c..e7445fb 100644 (file)
@@ -409,7 +409,7 @@ smx_actor_t SIMIX_process_attach(const char* name, void* data, const char* hostn
   /* Tracing the process creation */
   TRACE_msg_process_create(process->getName(), process->pid, process->host);
 
-  auto context = dynamic_cast<simgrid::kernel::context::AttachContext*>(process->context);
+  auto* context = dynamic_cast<simgrid::kernel::context::AttachContext*>(process->context);
   if (not context)
     xbt_die("Not a suitable context");
 
@@ -419,7 +419,7 @@ smx_actor_t SIMIX_process_attach(const char* name, void* data, const char* hostn
 
 void SIMIX_process_detach()
 {
-  auto context = dynamic_cast<simgrid::kernel::context::AttachContext*>(SIMIX_context_self());
+  auto* context = dynamic_cast<simgrid::kernel::context::AttachContext*>(SIMIX_context_self());
   if (not context)
     xbt_die("Not a suitable context");
 
@@ -462,7 +462,8 @@ void SIMIX_process_kill(smx_actor_t process, smx_actor_t issuer) {
     return;
   }
 
-  XBT_DEBUG("Killing process %s@%s", process->getCname(), process->host->getCname());
+  XBT_DEBUG("Actor '%s'@%s is killing actor '%s'@%s", issuer->getCname(), issuer->host->getCname(), process->getCname(),
+            process->host->getCname());
 
   process->context->iwannadie = 1;
   process->blocked = 0;
@@ -574,21 +575,19 @@ void SIMIX_process_throw(smx_actor_t process, xbt_errcat_t cat, int value, const
 
 }
 
-void simcall_HANDLER_process_killall(smx_simcall_t simcall, int reset_pid) {
-  SIMIX_process_killall(simcall->issuer, reset_pid);
+void simcall_HANDLER_process_killall(smx_simcall_t simcall)
+{
+  SIMIX_process_killall(simcall->issuer);
 }
 /**
  * \brief Kills all running processes.
  * \param issuer this one will not be killed
  */
-void SIMIX_process_killall(smx_actor_t issuer, int reset_pid)
+void SIMIX_process_killall(smx_actor_t issuer)
 {
   for (auto const& kv : simix_global->process_list)
     if (kv.second != issuer)
       SIMIX_process_kill(kv.second, issuer);
-
-  if (reset_pid > 0)
-    simix_process_maxpid = reset_pid;
 }
 
 void SIMIX_process_change_host(smx_actor_t actor, sg_host_t dest)
@@ -649,14 +648,6 @@ const char* SIMIX_process_self_get_name() {
   return process->name.c_str();
 }
 
-smx_actor_t SIMIX_process_get_by_name(const char* name)
-{
-  for (auto const& kv : simix_global->process_list)
-    if (kv.second->name == name)
-      return kv.second;
-  return nullptr;
-}
-
 void simcall_HANDLER_process_join(smx_simcall_t simcall, smx_actor_t process, double timeout)
 {
   if (process->finished) {
@@ -678,7 +669,7 @@ smx_activity_t SIMIX_process_join(smx_actor_t issuer, smx_actor_t process, doubl
                         [](void*, void* arg) {
                           auto sleep = static_cast<simgrid::kernel::activity::SleepImpl*>(arg);
                           if (sleep->surf_sleep)
-                            sleep->surf_sleep->finish(simgrid::surf::Action::State::done);
+                            sleep->surf_sleep->finish(simgrid::kernel::resource::Action::State::done);
                           intrusive_ptr_release(sleep);
                           return 0;
                         },
@@ -757,8 +748,8 @@ void SIMIX_process_yield(smx_actor_t self)
     std::rethrow_exception(std::move(exception));
   }
 
-  if(SMPI_switch_data_segment){
-    SMPI_switch_data_segment(self->pid);
+  if (SMPI_switch_data_segment && not self->finished) {
+    SMPI_switch_data_segment(self->iface());
   }
 }