Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of https://framagit.org/simgrid/simgrid
[simgrid.git] / src / s4u / s4u_Host.cpp
index 16f419a05b43b4836b629a19f882779772a0d6fd..3f5d4d4f0e702e8720abdee373c5ec8d7f6169f5 100644 (file)
@@ -7,6 +7,7 @@
 #include "simgrid/s4u/Actor.hpp"
 #include "simgrid/s4u/Engine.hpp"
 #include "simgrid/s4u/Exec.hpp"
+#include "src/simix/smx_private.hpp"
 #include "src/surf/HostImpl.hpp"
 
 #include <string>
@@ -38,7 +39,7 @@ Host::Host(std::string name) : name_(std::move(name))
 
 Host::~Host()
 {
-  xbt_assert(currentlyDestroying_, "Please call h->destroy() instead of manually deleting it.");
+  xbt_assert(currently_destroying_, "Please call h->destroy() instead of manually deleting it.");
 
   delete pimpl_;
   if (pimpl_netpoint != nullptr) // not removed yet by a children class
@@ -57,8 +58,8 @@ Host::~Host()
  */
 void Host::destroy()
 {
-  if (not currentlyDestroying_) {
-    currentlyDestroying_ = true;
+  if (not currently_destroying_) {
+    currently_destroying_ = true;
     on_destruction(*this);
     Engine::get_instance()->host_unregister(std::string(name_));
     delete this;
@@ -639,6 +640,16 @@ sg_host_t sg_host_self()
   return (process == nullptr) ? nullptr : process->get_host();
 }
 
+/* needs to be public and without simcall for exceptions and logging events */
+const char* sg_host_self_get_name()
+{
+  sg_host_t host = sg_host_self();
+  if (host == nullptr || SIMIX_process_self() == simix_global->maestro_process)
+    return "";
+
+  return host->get_cname();
+}
+
 double sg_host_load(sg_host_t host)
 {
   return host->get_load();