XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_task, sd,
"Logging specific to SimDag (task)");
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_task, sd,
"Logging specific to SimDag (task)");
task->tasks_before = xbt_dynar_new(sizeof(SD_dependency_t), NULL);
task->tasks_after = xbt_dynar_new(sizeof(SD_dependency_t), NULL);
task->unsatisfied_dependencies=0;
task->tasks_before = xbt_dynar_new(sizeof(SD_dependency_t), NULL);
task->tasks_after = xbt_dynar_new(sizeof(SD_dependency_t), NULL);
task->unsatisfied_dependencies=0;
/* scheduling parameters */
task->workstation_nb = 0;
task->workstation_list = NULL;
/* scheduling parameters */
task->workstation_nb = 0;
task->workstation_list = NULL;
(task->state&SD_SCHEDULED?"scheduled":""),
(task->state&SD_RUNNABLE?"runnable":"not runnable"),
(task->state&SD_IN_FIFO?"in fifo":""),
(task->state&SD_SCHEDULED?"scheduled":""),
(task->state&SD_RUNNABLE?"runnable":"not runnable"),
(task->state&SD_IN_FIFO?"in fifo":""),
- "Task '%s' must be SD_NOT_SCHEDULED, SD_READY, SD_SCHEDULED or SD_RUNNABLE",
+ "Task '%s' must be SD_NOT_SCHEDULED, SD_SCHEDULABLE, SD_SCHEDULED or SD_RUNNABLE",
- "Task '%s' must be SD_NOT_SCHEDULED, SD_READY, SD_SCHEDULED or SD_RUNNABLE",
+ "Task '%s' must be SD_NOT_SCHEDULED, SD_SCHEDULABLE, SD_SCHEDULED or SD_RUNNABLE",
SD_task_get_name(dst));
DEBUG2("SD_task_dependency_add: src = %s, dst = %s", SD_task_get_name(src),
SD_task_get_name(dst));
DEBUG2("SD_task_dependency_add: src = %s, dst = %s", SD_task_get_name(src),
xbt_dynar_push(dst->tasks_before, &dependency);
dst->unsatisfied_dependencies++;
xbt_dynar_push(dst->tasks_before, &dependency);
dst->unsatisfied_dependencies++;
/* if the task was runnable, then dst->tasks_before is not empty anymore,
so we must go back to state SD_SCHEDULED */
/* if the task was runnable, then dst->tasks_before is not empty anymore,
so we must go back to state SD_SCHEDULED */
xbt_dynar_remove_at(dynar, i, NULL);
__SD_task_dependency_destroy(dependency);
dst->unsatisfied_dependencies--;
xbt_dynar_remove_at(dynar, i, NULL);
__SD_task_dependency_destroy(dependency);
dst->unsatisfied_dependencies--;
if (__SD_task_is_scheduled(dst))
__SD_task_set_state(dst, SD_RUNNABLE);
else
if (__SD_task_is_scheduled(dst))
__SD_task_set_state(dst, SD_RUNNABLE);
else
- { SD_READY, SD_SCHEDULED, SD_RUNNING, SD_RUNNABLE, SD_DONE, SD_FAILED };
+ { SD_SCHEDULABLE, SD_SCHEDULED, SD_RUNNING, SD_RUNNABLE, SD_DONE, SD_FAILED };
- { "ready", "scheduled", "running", "runnable", "done", "failed" };
+ { "schedulable", "scheduled", "running", "runnable", "done", "failed" };
THROW1(arg_error, 0, "Task '%s' has already been scheduled",
SD_task_get_name(task));
THROW1(arg_error, 0, "Task '%s' has already been scheduled",
SD_task_get_name(task));
__SD_task_destroy_scheduling_data(task); /* now the scheduling data are not useful anymore */
__SD_task_set_state(task, SD_RUNNING);
xbt_assert2(__SD_task_is_running(task), "Bad state of task '%s': %d",
__SD_task_destroy_scheduling_data(task); /* now the scheduling data are not useful anymore */
__SD_task_set_state(task, SD_RUNNING);
xbt_assert2(__SD_task_is_running(task), "Bad state of task '%s': %d",
SD_task_t before = dep->src;
if (before->kind == SD_TASK_COMM_E2E) {
before->workstation_list[1] = task->workstation_list[0];
SD_task_t before = dep->src;
if (before->kind == SD_TASK_COMM_E2E) {
before->workstation_list[1] = task->workstation_list[0];
SD_task_do_schedule(before);
VERB4("Auto-Schedule comm task %s between %s -> %s. It costs %.f bytes",
SD_task_get_name(before),
SD_task_do_schedule(before);
VERB4("Auto-Schedule comm task %s between %s -> %s. It costs %.f bytes",
SD_task_get_name(before),
SD_task_t after = dep->dst;
if (after->kind == SD_TASK_COMM_E2E) {
after->workstation_list[0] = task->workstation_list[0];
SD_task_t after = dep->dst;
if (after->kind == SD_TASK_COMM_E2E) {
after->workstation_list[0] = task->workstation_list[0];
SD_task_do_schedule(after);
VERB4("Auto-Schedule comm task %s between %s -> %s. It costs %.f bytes",
SD_task_get_name(after),
SD_task_do_schedule(after);
VERB4("Auto-Schedule comm task %s between %s -> %s. It costs %.f bytes",
SD_task_get_name(after),