X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/db2c48cb673d942faf72d881de04bd3702ee7638..4636dcbf566244aa2c2bff539d0410dae1071c81:/src/simdag/simdag_private.h diff --git a/src/simdag/simdag_private.h b/src/simdag/simdag_private.h index 28e8664a88..331a2c394c 100644 --- a/src/simdag/simdag_private.h +++ b/src/simdag/simdag_private.h @@ -6,7 +6,7 @@ #ifndef SIMDAG_PRIVATE_H #define SIMDAG_PRIVATE_H - +#include #include "xbt/dynar.h" #include "simgrid/simdag.h" #include "surf/surf.h" @@ -22,9 +22,9 @@ typedef struct SD_global { bool watch_point_reached; /* has a task just reached a watch point? */ - xbt_dynar_t initial_task_set; - xbt_dynar_t executable_task_set; - xbt_dynar_t completed_task_set; + std::set *initial_tasks; + std::set *executable_tasks; + std::set *completed_tasks; xbt_dynar_t return_set; @@ -49,11 +49,14 @@ typedef struct SD_task { int marked; /* used to check if the task DAG has some cycle*/ /* dependencies */ - xbt_dynar_t tasks_before; - xbt_dynar_t tasks_after; int unsatisfied_dependencies; unsigned int is_not_ready; + std::set *inputs; + std::set *outputs; + std::set *predecessors; + std::set *successors; + /* scheduling parameters (only exist in state SD_SCHEDULED) */ int host_count; sg_host_t *host_list; @@ -65,15 +68,6 @@ typedef struct SD_task { char *category; /* sd task category for instrumentation */ } s_SD_task_t; -/* Task dependencies */ -typedef struct SD_dependency { - char *name; - void *data; - SD_task_t src; - SD_task_t dst; - /* src must be finished before dst can start */ -} s_SD_dependency_t, *SD_dependency_t; - /* SimDag private functions */ XBT_PRIVATE void SD_task_set_state(SD_task_t task, e_SD_task_state_t new_state); XBT_PRIVATE void SD_task_run(SD_task_t task);