+
+
+/** \ingroup m_task_management
+ * \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.
+ *
+ */
+void MSG_task_set_priority(m_task_t task, double priority) {
+ xbt_assert0((task != NULL) && (task->simdata != NULL), "Invalid parameter");
+
+ task->simdata->priority = 1/priority;
+ if(task->simdata->compute)
+ surf_workstation_resource->common_public->
+ set_priority(task->simdata->compute, task->simdata->priority);
+}
+
+/* Mallocator functions */
+m_task_t task_mallocator_new_f(void) {
+ m_task_t task = xbt_new(s_m_task_t, 1);
+ simdata_task_t simdata = xbt_new0(s_simdata_task_t, 1);
+ task->simdata = simdata;
+ return task;
+}
+
+void task_mallocator_free_f(m_task_t task) {
+ xbt_assert0((task != NULL), "Invalid parameter");
+
+ xbt_free(task->simdata);
+ xbt_free(task);
+
+ return;
+}
+
+void task_mallocator_reset_f(m_task_t task) {
+ memset(task->simdata, 0, sizeof(s_simdata_task_t));
+}