|
@@ -48,38 +48,20 @@ void starpu_task_init(struct starpu_task *task)
|
|
{
|
|
{
|
|
STARPU_ASSERT(task);
|
|
STARPU_ASSERT(task);
|
|
|
|
|
|
- task->cl = NULL;
|
|
|
|
- task->cl_arg = NULL;
|
|
|
|
- task->cl_arg_size = 0;
|
|
|
|
-
|
|
|
|
- task->callback_func = NULL;
|
|
|
|
- task->callback_arg = NULL;
|
|
|
|
|
|
+ /* As most of the fields must be initialised at NULL, let's put 0
|
|
|
|
+ * everywhere */
|
|
|
|
+ memset(task, 0, sizeof(struct starpu_task));
|
|
|
|
|
|
|
|
+ /* Now we can initialise fields which recquire custom value */
|
|
task->priority = STARPU_DEFAULT_PRIO;
|
|
task->priority = STARPU_DEFAULT_PRIO;
|
|
- task->use_tag = 0;
|
|
|
|
- task->synchronous = 0;
|
|
|
|
-
|
|
|
|
- task->execute_on_a_specific_worker = 0;
|
|
|
|
-
|
|
|
|
- task->bundle = NULL;
|
|
|
|
|
|
|
|
task->detach = 1;
|
|
task->detach = 1;
|
|
|
|
|
|
- /* by default, we do not let StarPU free the task structure since
|
|
|
|
- * starpu_task_init is likely to be used only for statically allocated
|
|
|
|
- * tasks */
|
|
|
|
- task->destroy = 0;
|
|
|
|
-
|
|
|
|
- task->regenerate = 0;
|
|
|
|
-
|
|
|
|
task->status = STARPU_TASK_INVALID;
|
|
task->status = STARPU_TASK_INVALID;
|
|
|
|
|
|
- task->profiling_info = NULL;
|
|
|
|
-
|
|
|
|
task->predicted = NAN;
|
|
task->predicted = NAN;
|
|
task->predicted_transfer = NAN;
|
|
task->predicted_transfer = NAN;
|
|
|
|
|
|
- task->starpu_private = NULL;
|
|
|
|
task->magic = 42;
|
|
task->magic = 42;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -113,7 +95,7 @@ struct starpu_task * __attribute__((malloc)) starpu_task_create(void)
|
|
{
|
|
{
|
|
struct starpu_task *task;
|
|
struct starpu_task *task;
|
|
|
|
|
|
- task = (struct starpu_task *) calloc(1, sizeof(struct starpu_task));
|
|
|
|
|
|
+ task = (struct starpu_task *) malloc(sizeof(struct starpu_task));
|
|
STARPU_ASSERT(task);
|
|
STARPU_ASSERT(task);
|
|
|
|
|
|
starpu_task_init(task);
|
|
starpu_task_init(task);
|