|
@@ -78,7 +78,6 @@ void soclEnqueueNDRangeKernel_task(void *descr[], void *args) {
|
|
|
|
|
|
/* Waiting for kernel to terminate */
|
|
/* Waiting for kernel to terminate */
|
|
clWaitForEvents(1, &event);
|
|
clWaitForEvents(1, &event);
|
|
- clReleaseEvent(event);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
static void cleaning_task_callback(void *args) {
|
|
static void cleaning_task_callback(void *args) {
|
|
@@ -97,6 +96,7 @@ static void cleaning_task_callback(void *args) {
|
|
gc_entity_unstore(&cmd->buffers[i]);
|
|
gc_entity_unstore(&cmd->buffers[i]);
|
|
|
|
|
|
free(cmd->buffers);
|
|
free(cmd->buffers);
|
|
|
|
+
|
|
void * co = cmd->codelet;
|
|
void * co = cmd->codelet;
|
|
cmd->codelet = NULL;
|
|
cmd->codelet = NULL;
|
|
free(co);
|
|
free(co);
|
|
@@ -160,7 +160,7 @@ cl_int command_ndrange_kernel_submit(command_ndrange_kernel cmd) {
|
|
|
|
|
|
/* Enqueue a cleaning task */
|
|
/* Enqueue a cleaning task */
|
|
//FIXME: execute this in the callback?
|
|
//FIXME: execute this in the callback?
|
|
- starpu_task cleaning_task = task_create_cpu(cleaning_task_callback, cmd,1);
|
|
|
|
|
|
+ starpu_task cleaning_task = task_create_cpu(cleaning_task_callback, cmd,0);
|
|
cl_event ev = command_event_get(cmd);
|
|
cl_event ev = command_event_get(cmd);
|
|
task_depends_on(cleaning_task, 1, &ev);
|
|
task_depends_on(cleaning_task, 1, &ev);
|
|
task_submit(cleaning_task, cmd);
|
|
task_submit(cleaning_task, cmd);
|