X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/66e807f40a943c3e3f754ed836d6759cc4909ce2..ee56134e963599f059f9a423b0a9100e70940ae2:/src/msg/msg_task.c diff --git a/src/msg/msg_task.c b/src/msg/msg_task.c index fce74f585d..f1043873db 100644 --- a/src/msg/msg_task.c +++ b/src/msg/msg_task.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010. The SimGrid Team. +/* Copyright (c) 2004-2013. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -112,7 +112,7 @@ MSG_parallel_task_create(const char *name, int host_nb, simdata->comm_amount = communication_amount; for (i = 0; i < host_nb; i++) - simdata->host_list[i] = host_list[i]->smx_host; + simdata->host_list[i] = host_list[i]; return task; } @@ -298,7 +298,7 @@ msg_error_t MSG_task_destroy(msg_task_t task) */ msg_error_t MSG_task_cancel(msg_task_t task) { - xbt_assert((task != NULL), "Invalid parameter"); + xbt_assert((task != NULL), "Cannot cancel a NULL task"); if (task->simdata->compute) { simcall_host_execution_cancel(task->simdata->compute); @@ -312,7 +312,9 @@ msg_error_t MSG_task_cancel(msg_task_t task) /** \ingroup m_task_management * \brief Returns the computation amount needed to process a task #msg_task_t. - * Once a task has been processed, this amount is thus set to 0... + * + * Once a task has been processed, this amount is set to 0. If you want, you + * can reset this value with #MSG_task_set_compute_duration before restarting the task. */ double MSG_task_get_compute_duration(msg_task_t task) { @@ -325,6 +327,11 @@ double MSG_task_get_compute_duration(msg_task_t task) /** \ingroup m_task_management * \brief set the computation amount needed to process a task #msg_task_t. + * + * \warning If the computation is ongoing (already started and not finished), + * it is not modified by this call. And the termination of the ongoing task with + * set the computation_amount to zero, overriding any value set during the + * execution. */ void MSG_task_set_compute_duration(msg_task_t task, @@ -335,9 +342,29 @@ void MSG_task_set_compute_duration(msg_task_t task, } +/** \ingroup m_task_management + * \brief set the amount data attached with a task #msg_task_t. + * + * \warning If the transfer is ongoing (already started and not finished), + * it is not modified by this call. + */ + +void MSG_task_set_data_size(msg_task_t task, + double data_size) +{ + xbt_assert(task, "Invalid parameter"); + task->simdata->message_size = data_size; + +} + + + /** \ingroup m_task_management * \brief Returns the remaining computation amount of a task #msg_task_t. * + * If the task is ongoing, this call retrieves the remaining amount of work. + * If it is not ongoing, it returns the total amount of work that will be + * executed when the task starts. */ double MSG_task_get_remaining_computation(msg_task_t task) {