Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
change the way dependencies are handled
[simgrid.git] / src / simdag / simdag_private.h
index d234556..331a2c3 100644 (file)
@@ -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<SD_task_t> *inputs;
+  std::set<SD_task_t> *outputs;
+  std::set<SD_task_t> *predecessors;
+  std::set<SD_task_t> *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);