X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/03bfc3fc78a224f689060bd9c126670ba8b59c0f..bd9e8ae503064a2f44fcd00c3a56640af4bb4f14:/src/simdag/sd_task.c diff --git a/src/simdag/sd_task.c b/src/simdag/sd_task.c index 03c33f93c4..8ffbf91587 100644 --- a/src/simdag/sd_task.c +++ b/src/simdag/sd_task.c @@ -240,10 +240,10 @@ SD_workstation_t* SD_task_get_workstation_list(SD_task_t task) } /** - * \brief Returns the total amount of a task + * \brief Returns the total amount of work contained in a task * * \param task a task - * \return the total amount of this task + * \return the total amount of work (computation or data transfer) for this task * \see SD_task_get_remaining_amount() */ double SD_task_get_amount(SD_task_t task) @@ -254,10 +254,10 @@ double SD_task_get_amount(SD_task_t task) } /** - * \brief Returns the remaining amount of a task + * \brief Returns the remaining amount work to do till the completion of a task * * \param task a task - * \return the remaining amount of this task + * \return the remaining amount of work (computation or data transfer) of this task * \see SD_task_get_amount() */ double SD_task_get_remaining_amount(SD_task_t task) @@ -324,7 +324,7 @@ void SD_task_dump(SD_task_t task) void SD_task_dotty(SD_task_t task,void* out) { unsigned int counter; SD_dependency_t dependency; - fprintf(out, " T%ld [label=\"%.20s\"",(unsigned long int)task, task->name); + fprintf(out, " T%p [label=\"%.20s\"",task, task->name); switch(task->kind){ case SD_TASK_COMM_E2E: fprintf(out,", shape=box"); @@ -332,6 +332,8 @@ void SD_task_dotty(SD_task_t task,void* out) { case SD_TASK_COMP_SEQ: fprintf(out,", shape=circle"); break; + default: + xbt_die("Unknown task type!"); } fprintf(out,"];\n"); xbt_dynar_foreach(task->tasks_before,counter,dependency) { @@ -668,7 +670,7 @@ double SD_task_get_execution_time(SD_task_t task, max_time = time; } } - return max_time * SD_task_get_amount(task); + return max_time; } static inline void SD_task_do_schedule(SD_task_t task) { SD_CHECK_INIT_DONE(); @@ -772,6 +774,7 @@ static void __SD_task_destroy_scheduling_data(SD_task_t task) xbt_free(task->computation_amount); xbt_free(task->communication_amount); + task->computation_amount = task->communication_amount = NULL; } /* Runs a task. This function is directly called by __SD_task_try_to_run if the task @@ -1163,6 +1166,12 @@ void SD_task_destroy(SD_task_t task) if (task->workstation_list != NULL) xbt_free(task->workstation_list); + if (task->communication_amount) + xbt_free(task->communication_amount); + + if (task->computation_amount) + xbt_free(task->computation_amount); + xbt_dynar_free(&task->tasks_before); xbt_dynar_free(&task->tasks_after); xbt_free(task);