X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6de03ecc4e630732984a0673512a5d15fd75e270..f8cf994b5d7f833930b87bfee6e239ea9c9f6c29:/src/msg/msg_task.c
diff --git a/src/msg/msg_task.c b/src/msg/msg_task.c
index bdbbc47e83..537364d752 100644
--- a/src/msg/msg_task.c
+++ b/src/msg/msg_task.c
@@ -10,8 +10,8 @@
#include "xbt/log.h"
/** @addtogroup m_task_management
- *
- *
+ *
+ *
* Since most scheduling algorithms rely on a concept of task
* that can be either computed locally or
* transferred on another processor, it seems to be the
@@ -309,8 +309,11 @@ msg_error_t MSG_task_cancel(msg_task_t task)
simcall_host_execution_cancel(task->simdata->compute);
}
else if (task->simdata->comm) {
- simcall_comm_cancel(task->simdata->comm);
- task->simdata->isused = 0;
+ simdata_task_t simdata = task->simdata;
+ simcall_comm_cancel(simdata->comm);
+ if (msg_global->debug_multiple_use && simdata->isused!=0)
+ xbt_ex_free(*(xbt_ex_t*)simdata->isused);
+ simdata->isused = 0;
}
return MSG_OK;
}
@@ -351,7 +354,7 @@ void MSG_task_set_compute_duration(msg_task_t task,
* \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.
+ * it is not modified by this call.
*/
void MSG_task_set_data_size(msg_task_t task,
@@ -428,7 +431,7 @@ double MSG_task_get_data_size(msg_task_t task)
/** \ingroup m_task_management
- * \brief Changes the priority of a computation task. This priority doesn't affect
+ * \brief Changes the priority of a computation task. This priority doesn't affect
* the transfer rate. A priority of 2 will make a task receive two times more
* cpu power than the other ones.
*
@@ -543,8 +546,7 @@ void MSG_task_set_affinity(msg_task_t task, msg_host_t host, unsigned long mask)
/* task is being executed on this host. so change the affinity now */
{
/* check it works. remove me if it works. */
- unsigned long affinity_mask = (unsigned long) xbt_dict_get_or_null_ext(task->simdata->affinity_mask_db, (char *) host, sizeof(msg_host_t));
- xbt_assert(affinity_mask == mask);
+ xbt_assert((unsigned long) xbt_dict_get_or_null_ext(task->simdata->affinity_mask_db, (char *) host, sizeof(msg_host_t)) == mask);
}
XBT_INFO("set affinity(0x%04lx@%s) for %s", mask, MSG_host_get_name(host), MSG_task_get_name(task));