- if (dst->unsatisfied_dependencies == 0 && __SD_task_is_scheduled(dst))
- __SD_task_set_state(dst, SD_RUNNABLE);
+ if (dst->unsatisfied_dependencies == 0){
+ if (__SD_task_is_scheduled(dst))
+ __SD_task_set_state(dst, SD_RUNNABLE);
+ else
+ __SD_task_set_state(dst, SD_SCHEDULABLE);
+ }
+
+ if (dst->is_not_ready == 0)
+ __SD_task_set_state(dst, SD_SCHEDULABLE);