X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e5a5b0f6ee35cb592f9345a9dafa0e29df8477ef..0eead244337fde8f0508629f8f8473f946c19f88:/src/msg/msg_host.cpp diff --git a/src/msg/msg_host.cpp b/src/msg/msg_host.cpp index d9bf83de84..b676e16beb 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); @@ -28,14 +29,7 @@ msg_host_t __MSG_host_create(sg_host_t host) // FIXME: don't return our paramete { msg_host_priv_t priv = xbt_new0(s_msg_host_priv_t, 1); - priv->dp_objs = xbt_dict_new(); - priv->dp_enabled = 0; - priv->dp_updated_by_deleted_tasks = 0; - priv->is_migrating = 0; - - 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 = nullptr; sg_host_msg_set(host,priv); @@ -115,12 +109,7 @@ void __MSG_host_priv_free(msg_host_priv_t priv) { if (priv == nullptr) return; - unsigned int size = xbt_dict_size(priv->dp_objs); - if (size > 0) - XBT_WARN("dp_objs: %u pending task?", size); - xbt_dict_free(&priv->dp_objs); - xbt_dynar_free(&priv->file_descriptor_table); - + delete priv->file_descriptor_table; free(priv); } @@ -129,7 +118,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 @@ -157,7 +146,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. * @@ -165,7 +153,7 @@ double MSG_get_host_speed(msg_host_t host) { * \return the number of cores */ int MSG_host_get_core_number(msg_host_t host) { - return host->coresCount(); + return host->coreCount(); } /** \ingroup m_host_management @@ -210,10 +198,10 @@ xbt_dict_t MSG_host_get_properties(msg_host_t host) * \param host a host * \param name a property name * \param value what to change the property to - * \param free_ctn the freeing function to use to kill the value on need */ -void MSG_host_set_property_value(msg_host_t host, const char *name, char *value,void_f_pvoid_t free_ctn) { - xbt_dict_set(MSG_host_get_properties(host), name, value,free_ctn); +void MSG_host_set_property_value(msg_host_t host, const char* name, char* value) +{ + xbt_dict_set(MSG_host_get_properties(host), name, value, nullptr); } /** @ingroup m_host_management @@ -239,28 +227,6 @@ int MSG_host_is_off(msg_host_t host) return host->isOff(); } -/** \ingroup m_host_management - * \brief Set the parameters of a given host - * - * \param host a host - * \param params a prameter object - */ -void MSG_host_set_params(msg_host_t host, vm_params_t params) -{ - host->setParameters(params); -} - -/** \ingroup m_host_management - * \brief Get the parameters of a given host - * - * \param host a host - * \param params a prameter object - */ -void MSG_host_get_params(msg_host_t host, vm_params_t params) -{ - host->parameters(params); -} - /** \ingroup m_host_management * \brief Return the speed of the processor (in flop/s) at a given pstate. See also @ref SURF_plugin_energy. * @@ -342,11 +308,17 @@ 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); + if(!priv->file_descriptor_table){ + 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. + } + 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); }