X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c52c503d21e54cc4ff15a64060c2eb0b265f5f73..e3bb3fa0da0fe033ac8ff471ea382010177855c8:/src/msg/msg_host.cpp diff --git a/src/msg/msg_host.cpp b/src/msg/msg_host.cpp index 367b64927c..1d369c0313 100644 --- a/src/msg/msg_host.cpp +++ b/src/msg/msg_host.cpp @@ -9,6 +9,7 @@ #include "xbt/log.h" #include "simgrid/simix.h" #include +#include XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(msg); @@ -33,11 +34,8 @@ msg_host_t __MSG_host_create(sg_host_t host) // FIXME: don't return our paramete priv->dp_updated_by_deleted_tasks = 0; priv->is_migrating = 0; - priv->affinity_mask_db = xbt_dict_new_homogeneous(nullptr); - - priv->file_descriptor_table = xbt_dynar_new(sizeof(int), nullptr); - for (int i=sg_storage_max_file_descriptors-1; i>=0;i--) - xbt_dynar_push_as(priv->file_descriptor_table, int, i); + priv->file_descriptor_table = new std::vector(sg_storage_max_file_descriptors); + std::iota (priv->file_descriptor_table->rbegin(), priv->file_descriptor_table->rend(), 0); // Fill with ..., 1, 0. sg_host_msg_set(host,priv); @@ -121,9 +119,7 @@ void __MSG_host_priv_free(msg_host_priv_t priv) if (size > 0) XBT_WARN("dp_objs: %u pending task?", size); xbt_dict_free(&priv->dp_objs); - xbt_dict_free(&priv->affinity_mask_db); - xbt_dynar_free(&priv->file_descriptor_table); - + delete priv->file_descriptor_table; free(priv); } @@ -132,7 +128,7 @@ void __MSG_host_priv_free(msg_host_priv_t priv) */ int MSG_get_host_number() { - return xbt_dict_length(host_list); + return sg_host_count(); } /** \ingroup m_host_management @@ -160,7 +156,6 @@ double MSG_get_host_speed(msg_host_t host) { return MSG_host_get_speed(host); } - /** \ingroup m_host_management * \brief Return the number of cores. * @@ -345,11 +340,13 @@ xbt_dict_t MSG_host_get_storage_content(msg_host_t host) int __MSG_host_get_file_descriptor_id(msg_host_t host){ msg_host_priv_t priv = sg_host_msg(host); - xbt_assert(!xbt_dynar_is_empty(priv->file_descriptor_table), "Too much files are opened! Some have to be closed."); - return xbt_dynar_pop_as(priv->file_descriptor_table, int); + xbt_assert(!priv->file_descriptor_table->empty(), "Too much files are opened! Some have to be closed."); + int desc = priv->file_descriptor_table->back(); + priv->file_descriptor_table->pop_back(); + return desc; } void __MSG_host_release_file_descriptor_id(msg_host_t host, int id){ msg_host_priv_t priv = sg_host_msg(host); - xbt_dynar_push_as(priv->file_descriptor_table, int, id); + priv->file_descriptor_table->push_back(id); }