Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
allow tasks to take no output nor produce any output
authorsuter <frederic.suter@cc.in2p3.fr>
Thu, 6 Jun 2013 20:31:42 +0000 (22:31 +0200)
committersuter <frederic.suter@cc.in2p3.fr>
Fri, 7 Jun 2013 07:04:54 +0000 (09:04 +0200)
src/simdag/sd_daxloader.c

index 29803e9..1ef9172 100644 (file)
@@ -361,6 +361,16 @@ xbt_dynar_t SD_daxload(const char *filename)
   xbt_dynar_foreach(result, cpt, file) {
     if (SD_task_get_kind(file) == SD_TASK_COMM_E2E) {
       uniq_transfer_task_name(file);
+    } else if (SD_task_get_kind(file) == SD_TASK_COMP_SEQ){
+      /* If some tasks do not take files as input, connect them to the root, if
+       * they don't produce files, connect them to the end node.
+       */
+      if ((file != root_task) && xbt_dynar_is_empty(file->tasks_before)) {
+        SD_task_dependency_add(NULL, NULL, root_task, file);
+      }
+      if ((file != end_task) && xbt_dynar_is_empty(file->tasks_after)) {
+        SD_task_dependency_add(NULL, NULL, file, end_task);
+      }
     }
   }