Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
inline SIMIX_host_off into s4u::Host->turnOff()
authorMartin Quinson <martin.quinson@loria.fr>
Thu, 17 May 2018 12:56:22 +0000 (14:56 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Thu, 17 May 2018 12:56:41 +0000 (14:56 +0200)
include/simgrid/simix.h
src/s4u/s4u_Host.cpp
src/simix/smx_host.cpp

index 9886e4d..57af3ba 100644 (file)
@@ -138,9 +138,6 @@ XBT_PUBLIC smx_actor_t SIMIX_process_attach(const char* name, void* data, const
 #endif
 XBT_PUBLIC void SIMIX_process_detach();
 
-/*********************************** Host *************************************/
-XBT_PUBLIC void SIMIX_host_off(sg_host_t host, smx_actor_t issuer);
-
 /********************************* Process ************************************/
 XBT_PUBLIC int SIMIX_process_count();
 XBT_PUBLIC smx_actor_t SIMIX_process_self();
index 17f9d90..9aa141c 100644 (file)
@@ -100,12 +100,27 @@ void Host::turnOn()
   }
 }
 
+/** @brief Stop the host if it is on */
 void Host::turnOff()
 {
   if (isOn()) {
     smx_actor_t self = SIMIX_process_self();
     simgrid::simix::simcall([this, self] {
-      SIMIX_host_off(this, self);
+      simgrid::simix::Host* host = this->extension<simgrid::simix::Host>();
+
+      xbt_assert((host != nullptr), "Invalid parameters");
+
+      this->pimpl_cpu->turn_off();
+
+      /* Clean Simulator data */
+      if (not host->process_list.empty()) {
+        for (auto& process : host->process_list) {
+          SIMIX_process_kill(&process, self);
+          XBT_DEBUG("Killing %s@%s on behalf of %s which turned off that host.", process.get_cname(),
+                    process.host->get_cname(), self->get_cname());
+        }
+      }
+
       on_state_change(*this);
     });
   }
index 3e9573a..0ff9a9e 100644 (file)
@@ -61,29 +61,6 @@ namespace simgrid {
 
 }} // namespaces
 
-/** @brief Stop the host if it is on */
-void SIMIX_host_off(sg_host_t h, smx_actor_t issuer)
-{
-  simgrid::simix::Host* host = h->extension<simgrid::simix::Host>();
-
-  xbt_assert((host != nullptr), "Invalid parameters");
-
-  if (h->isOn()) {
-    h->pimpl_cpu->turn_off();
-
-    /* Clean Simulator data */
-    if (not host->process_list.empty()) {
-      for (auto& process : host->process_list) {
-        SIMIX_process_kill(&process, issuer);
-        XBT_DEBUG("Killing %s@%s on behalf of %s which turned off that host.", process.get_cname(),
-                  process.host->get_cname(), issuer->get_cname());
-      }
-    }
-  } else {
-    XBT_INFO("Host %s is already off", h->get_cname());
-  }
-}
-
 /* needs to be public and without simcall for exceptions and logging events */
 const char* sg_host_self_get_name()
 {