Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
dynar--
[simgrid.git] / src / surf / surf_interface.cpp
index 3a37bcc..e9b9cf2 100644 (file)
@@ -25,13 +25,10 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_kernel, surf, "Logging specific to SURF (ke
  * Utils *
  *********/
 
-/* model_list_invoke contains only surf_host and surf_vm.
- * The callback functions of cpu_model and network_model will be called from those of these host models. */
 std::vector<surf_model_t> * all_existing_models = nullptr; /* to destroy models correctly */
-xbt_dynar_t model_list_invoke = nullptr;  /* to invoke callbacks */
 
 simgrid::trace_mgr::future_evt_set *future_evt_set = nullptr;
-xbt_dynar_t surf_path = nullptr;
+std::vector<std::string> surf_path;
 std::vector<simgrid::s4u::Host*> host_that_restart;
 xbt_dict_t watched_hosts_lib;
 
@@ -46,8 +43,8 @@ simgrid::xbt::signal<void(void)> surfExitCallbacks;
 #include <simgrid/plugins/energy.h> // FIXME: this plugin should not be linked to the core
 
 s_surf_model_description_t surf_plugin_description[] = {
-    {"Energy", "Cpu energy consumption.", &sg_energy_plugin_init},
-     {nullptr, nullptr,  nullptr}      /* this array must be nullptr terminated */
+    {"Energy", "Cpu energy consumption.", &sg_host_energy_plugin_init},
+    {nullptr, nullptr, nullptr} /* this array must be nullptr terminated */
 };
 
 /* Don't forget to update the option description in smx_config when you change this */
@@ -130,8 +127,6 @@ double surf_get_clock()
 
 FILE *surf_fopen(const char *name, const char *mode)
 {
-  unsigned int cpt;
-  char *path_elm = nullptr;
   char *buff;
   FILE *file = nullptr;
 
@@ -141,8 +136,8 @@ FILE *surf_fopen(const char *name, const char *mode)
     return fopen(name, mode);
 
   /* search relative files in the path */
-  xbt_dynar_foreach(surf_path, cpt, path_elm) {
-    buff = bprintf("%s" FILE_DELIM "%s", path_elm, name);
+  for (auto path_elm : surf_path) {
+    buff = bprintf("%s" FILE_DELIM "%s", path_elm.c_str(), name);
     file = fopen(buff, mode);
     free(buff);
 
@@ -343,8 +338,6 @@ void surf_init(int *argc, char **argv)
   xbt_init(argc, argv);
   if (!all_existing_models)
     all_existing_models = new std::vector<simgrid::surf::Model*>();
-  if (!model_list_invoke)
-    model_list_invoke = xbt_dynar_new(sizeof(simgrid::surf::Model*), nullptr);
   if (!future_evt_set)
     future_evt_set = new simgrid::trace_mgr::future_evt_set();
 
@@ -361,8 +354,6 @@ void surf_exit()
 {
   TRACE_end();                  /* Just in case it was not called by the upper layer (or there is no upper layer) */
 
-  xbt_dynar_free(&surf_path);
-
   sg_host_exit();
   xbt_lib_free(&storage_lib);
   sg_link_exit();
@@ -373,7 +364,6 @@ void surf_exit()
   for (auto model : *all_existing_models)
     delete model;
   delete all_existing_models;
-  xbt_dynar_free(&model_list_invoke);
 
   simgrid::surf::surfExitCallbacks();
 
@@ -465,12 +455,10 @@ double Model::nextOccuringEventLazy(double now)
       min = now + time_to_completion; // when the task will complete if nothing changes
     }
 
-    if ((action->getMaxDuration() != NO_MAX_DURATION)
-        && (min == -1
-            || action->getStartTime() +
-            action->getMaxDuration() < min)) {
-      min = action->getStartTime() +
-          action->getMaxDuration();  // when the task will complete anyway because of the deadline if any
+    if ((action->getMaxDuration() != NO_MAX_DURATION) &&
+        (min == -1 || action->getStartTime() + action->getMaxDuration() < min)) {
+      // when the task will complete anyway because of the deadline if any
+      min          = action->getStartTime() + action->getMaxDuration();
       max_dur_flag = 1;
     }