ソースを参照

port 9879 from mic-scc: Use cl_arg_free for starpu_insert_task

Samuel Thibault 12 年 前
コミット
cab81b961c
共有2 個のファイルを変更した1 個の追加5 個の削除を含む
  1. 1 1
      src/util/starpu_insert_task.c
  2. 0 4
      src/util/starpu_insert_task_utils.c

+ 1 - 1
src/util/starpu_insert_task.c

@@ -60,7 +60,6 @@ void starpu_codelet_unpack_args(void *_cl_arg, ...)
 	}
 
 	va_end(varg_list);
-	free(cl_arg);
 }
 
 int starpu_insert_task(struct starpu_codelet *cl, ...)
@@ -80,6 +79,7 @@ int starpu_insert_task(struct starpu_codelet *cl, ...)
 	}
 
 	struct starpu_task *task = starpu_task_create();
+	task->cl_arg_free = 1;
 
 	if (cl && cl->nbuffers > STARPU_NMAXBUFS)
 	{

+ 0 - 4
src/util/starpu_insert_task_utils.c

@@ -29,7 +29,6 @@ struct insert_task_cb_wrapper
 {
 	_starpu_callback_func_t callback_func;
 	void *callback_arg;
-	void *arg_stack;
 };
 
 static
@@ -41,7 +40,6 @@ void starpu_task_insert_callback_wrapper(void *_cl_arg_wrapper)
 	if (cl_arg_wrapper->callback_func)
 		cl_arg_wrapper->callback_func(cl_arg_wrapper->callback_arg);
 
-	// cl_arg_wrapper->arg_stack is freed by starpu_codelet_unpack_args()
 	free(cl_arg_wrapper);
 }
 
@@ -229,7 +227,6 @@ int _starpu_insert_task_create_and_submit(void *arg_buffer, size_t arg_buffer_si
 	STARPU_ASSERT(cl_arg_wrapper);
 
 	cl_arg_wrapper->callback_func = NULL;
-	cl_arg_wrapper->arg_stack = arg_buffer;
 
 	while((arg_type = va_arg(varg_list, int)) != 0)
 	{
@@ -358,7 +355,6 @@ int _starpu_insert_task_create_and_submit(void *arg_buffer, size_t arg_buffer_si
 			(cl == NULL) ? "none" :
 			(*task)->cl->name ? (*task)->cl->name :
 			((*task)->cl->model && (*task)->cl->model->symbol)?(*task)->cl->model->symbol:"none");
-		free(cl_arg_wrapper->arg_stack);
 		free(cl_arg_wrapper);
 	}