if(!all_marked){
XBT_VERB("there is at least one cycle in your task graph");
xbt_dynar_foreach(dag,count,task){
- if(task->kind != SD_TASK_COMM_E2E) {
- if(task->predecessors->empty() && task->inputs->empty()){
- task->marked = 1;
- current.push_back(task);
- }
+ if(task->kind != SD_TASK_COMM_E2E && task->predecessors->empty() && task->inputs->empty()){
+ task->marked = 1;
+ current.push_back(task);
}
}
//test if something has to be done for the next iteration
/* 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) && file->inputs->empty())
- SD_task_dependency_add(nullptr, nullptr, root_task, file);
- if ((file != end_task) && file->outputs->empty())
- SD_task_dependency_add(nullptr, nullptr, file, end_task);
+ if ((file != root_task) && (file != end_task)) {
+ if (file->inputs->empty())
+ SD_task_dependency_add(nullptr, nullptr, root_task, file);
+ if (file->outputs->empty())
+ SD_task_dependency_add(nullptr, nullptr, file, end_task);
+ }
} else {
- THROW_IMPOSSIBLE;
+ THROW_IMPOSSIBLE;
}
}