Переглянути джерело

Memset in starpu_task_init instead of initialising every fields to 0.
starpu_task_create now uses malloc instead of calloc.

Nicolas Collin 13 роки тому
батько
коміт
b3381a0e4f
1 змінених файлів з 5 додано та 23 видалено
  1. 5 23
      src/core/task.c

+ 5 - 23
src/core/task.c

@@ -48,38 +48,20 @@ void starpu_task_init(struct starpu_task *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->use_tag = 0;
-	task->synchronous = 0;
-
-	task->execute_on_a_specific_worker = 0;
-
-	task->bundle = NULL;
 
 	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->profiling_info = NULL;
-
 	task->predicted = NAN;
 	task->predicted_transfer = NAN;
 
-	task->starpu_private = NULL;
 	task->magic = 42;
 }
 
@@ -113,7 +95,7 @@ struct starpu_task * __attribute__((malloc)) starpu_task_create(void)
 {
 	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_task_init(task);