X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fe14db8f94df5cc46ba2f2a5d688a1b0b763ec29..d8596c05e7d798e90ae149f20ef766671f1a778f:/src/simdag/sd_dotloader.cpp diff --git a/src/simdag/sd_dotloader.cpp b/src/simdag/sd_dotloader.cpp index 4979a2e2dd..536d34b2f7 100644 --- a/src/simdag/sd_dotloader.cpp +++ b/src/simdag/sd_dotloader.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2009-2018. The SimGrid Team. +/* Copyright (c) 2009-2019. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -12,11 +12,11 @@ #include #include -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_dotparse, sd, "Parsing DOT files"); - #if HAVE_GRAPHVIZ #include +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_dotparse, sd, "Parsing DOT files"); + xbt_dynar_t SD_dotload_generic(const char* filename, bool sequential, bool schedule); static void dot_task_p_free(void *task) { @@ -213,19 +213,18 @@ xbt_dynar_t SD_dotload_generic(const char* filename, bool sequential, bool sched if(schedule){ if (schedule_success) { - std::vector hosts; - simgrid::s4u::Engine::getInstance()->getHostList(&hosts); + std::vector hosts = simgrid::s4u::Engine::get_instance()->get_all_hosts(); for (auto const& elm : computers) { SD_task_t previous_task = nullptr; - for (auto const& task : *elm.second) { + for (auto const& cur_task : *elm.second) { /* add dependency between the previous and the task to avoid parallel execution */ - if(task){ - if (previous_task && not SD_task_dependency_exists(previous_task, task)) - SD_task_dependency_add(previous_task, task); + if (cur_task) { + if (previous_task && not SD_task_dependency_exists(previous_task, cur_task)) + SD_task_dependency_add(previous_task, cur_task); - SD_task_schedulel(task, 1, hosts[atoi(elm.first.c_str())]); - previous_task = task; + SD_task_schedulel(cur_task, 1, hosts[std::stod(elm.first)]); + previous_task = cur_task; } } delete elm.second; @@ -240,7 +239,7 @@ xbt_dynar_t SD_dotload_generic(const char* filename, bool sequential, bool sched } if (result && not acyclic_graph_detail(result)) { - std::string base = simgrid::xbt::Path(filename).getBasename(); + std::string base = simgrid::xbt::Path(filename).get_base_name(); XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.", base.c_str()); xbt_dynar_free(&result); result = nullptr;