- if (SD_task_get_kind(dst) == SD_TASK_COMM_E2E) {
- SD_dependency_t comm_dep;
- SD_task_t comm_dst;
- xbt_dynar_get_cpy(dst->tasks_after, 0, &comm_dep);
- comm_dst = comm_dep->dst;
- if (SD_task_get_state(comm_dst) == SD_NOT_SCHEDULED && comm_dst->is_not_ready > 0) {
- comm_dst->is_not_ready--;
+ for (std::set<SD_task_t>::iterator it=task->outputs->begin(); it!=task->outputs->end(); ++it){
+ dst=*it;
+ dst->unsatisfied_dependencies = 0;
+ dst->is_not_ready = 0;
+ if (SD_task_get_state(dst) == SD_SCHEDULED)
+ SD_task_set_state(dst, SD_RUNNABLE);
+ else
+ SD_task_set_state(dst, SD_SCHEDULABLE);
+ SD_task_t comm_dst = *(dst->successors->begin());
+ if (SD_task_get_state(comm_dst) == SD_NOT_SCHEDULED && comm_dst->is_not_ready > 0) {
+ comm_dst->is_not_ready--;