X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/23141ea49d9f51ecda69abe8cd02736b92254726..e3bb3fa0da0fe033ac8ff471ea382010177855c8:/src/s4u/s4u_host.cpp diff --git a/src/s4u/s4u_host.cpp b/src/s4u/s4u_host.cpp index 7d13e3385c..5db68c5809 100644 --- a/src/s4u/s4u_host.cpp +++ b/src/s4u/s4u_host.cpp @@ -20,6 +20,8 @@ #include "simgrid/s4u/host.hpp" #include "simgrid/s4u/storage.hpp" +xbt_dict_t host_list = nullptr; // FIXME: make it a static field of Host + int MSG_HOST_LEVEL = -1; int USER_HOST_LEVEL = -1; @@ -55,6 +57,12 @@ Host *Host::by_name(std::string name) { } Host* Host::by_name_or_null(const char* name) { + if (host_list == nullptr) + host_list = xbt_dict_new_homogeneous([](void*p) { + simgrid::s4u::Host* host = static_cast(p); + simgrid::s4u::Host::onDestruction(*host); + delete host; + }); return (Host*) xbt_dict_get_or_null(host_list, name); } Host* Host::by_name_or_create(const char* name)