瀏覽代碼

Fix crash when using NOWHERE tasks (or asynchronous partitioning) and profiling

Samuel Thibault 9 年之前
父節點
當前提交
e49fe7883c
共有 1 個文件被更改,包括 5 次插入1 次删除
  1. 5 1
      src/datawizard/coherency.c

+ 5 - 1
src/datawizard/coherency.c

@@ -1143,7 +1143,8 @@ void _starpu_fetch_nowhere_task_input(struct _starpu_job *j)
 
 	wrapper = malloc(sizeof(*wrapper));
 	wrapper->j = j;
-	wrapper->pending = nfetchbuffers;
+	/* +1 for the call below */
+	wrapper->pending = nfetchbuffers + 1;
 
 	for (index = 0; index < nbuffers; index++)
 	{
@@ -1168,6 +1169,9 @@ void _starpu_fetch_nowhere_task_input(struct _starpu_job *j)
 
 	if (profiling && task->profiling_info)
 		_starpu_clock_gettime(&task->profiling_info->acquire_data_end_time);
+
+	/* Finished working with the task, release our reference */
+	_starpu_fetch_nowhere_task_input_cb(wrapper);
 }
 
 static void _starpu_fetch_nowhere_task_input_cb(void *arg)