Selaa lähdekoodia

Use cl_arg_free for starpu_insert_task

Samuel Thibault 12 vuotta sitten
vanhempi
commit
ba3a1b8541
2 muutettua tiedostoa jossa 2 lisäystä ja 6 poistoa
  1. 2 2
      src/util/starpu_insert_task.c
  2. 0 4
      src/util/starpu_insert_task_utils.c

+ 2 - 2
src/util/starpu_insert_task.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2010, 2012-2013  Université de Bordeaux 1
+ * Copyright (C) 2010, 2012  Université de Bordeaux 1
  * Copyright (C) 2011, 2012, 2013  Centre National de la Recherche Scientifique
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -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);
 	}