-/* 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
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;
}
*/
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);
/** \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)
{
/** \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,
}
+/** \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)
{