last_data_available = -1.0;
xbt_dynar_foreach(parents, i, parent) {
/* normal case */
if (SD_task_get_kind(parent) == SD_TASK_COMM_E2E) {
last_data_available = -1.0;
xbt_dynar_foreach(parents, i, parent) {
/* normal case */
if (SD_task_get_kind(parent) == SD_TASK_COMM_E2E) {
xbt_assert(xbt_dynar_length(grand_parents) <2, "Error: transfer %s has 2 parents", SD_task_get_name(parent));
xbt_assert(xbt_dynar_length(grand_parents) <2, "Error: transfer %s has 2 parents", SD_task_get_name(parent));
- best_host = hosts[0];
- min_EFT = finish_on_at(task, hosts[0]);
-
- for (i = 1; i < nhosts; i++) {
- EFT = finish_on_at(task, hosts[i]);
+ for (int i = 1; i < nhosts; i++) {
+ double EFT = finish_on_at(task, hosts[i]);
XBT_DEBUG("%s finishes on %s at %f", SD_task_get_name(task), sg_host_get_name(hosts[i]), EFT);
if (EFT < min_EFT) {
XBT_DEBUG("%s finishes on %s at %f", SD_task_get_name(task), sg_host_get_name(hosts[i]), EFT);
if (EFT < min_EFT) {
- double finish_time, min_finish_time = -1.0;
- SD_task_t task, selected_task = NULL, last_scheduled_task;
+ double min_finish_time = -1.0;
+ SD_task_t task, selected_task = NULL;
xbt_dynar_foreach(dax, cursor, task) {
SD_task_watch(task, SD_DONE);
xbt_dynar_foreach(dax, cursor, task) {
SD_task_watch(task, SD_DONE);
/* Schedule the root first */
xbt_dynar_get_cpy(dax, 0, &task);
/* Schedule the root first */
xbt_dynar_get_cpy(dax, 0, &task);
SD_task_schedulel(task, 1, host);
while (!xbt_dynar_is_empty(SD_simulate(-1.0))) {
SD_task_schedulel(task, 1, host);
while (!xbt_dynar_is_empty(SD_simulate(-1.0))) {
xbt_dynar_foreach(ready_tasks, cursor, task) {
XBT_DEBUG("%s is ready", SD_task_get_name(task));
host = SD_task_get_best_host(task);
xbt_dynar_foreach(ready_tasks, cursor, task) {
XBT_DEBUG("%s is ready", SD_task_get_name(task));
host = SD_task_get_best_host(task);
- finish_time = finish_on_at(task, host);
- if (min_finish_time == -1. || finish_time < min_finish_time) {
+ double finish_time = finish_on_at(task, host);
+ if (min_finish_time < 0 || finish_time < min_finish_time) {
if (last_scheduled_task && (SD_task_get_state(last_scheduled_task) != SD_DONE) &&
(SD_task_get_state(last_scheduled_task) != SD_FAILED) &&
!SD_task_dependency_exists(sg_host_get_last_scheduled_task(selected_host), selected_task))
if (last_scheduled_task && (SD_task_get_state(last_scheduled_task) != SD_DONE) &&
(SD_task_get_state(last_scheduled_task) != SD_FAILED) &&
!SD_task_dependency_exists(sg_host_get_last_scheduled_task(selected_host), selected_task))