浏览代码

Fix redux_map memleak

Samuel Thibault 4 年之前
父节点
当前提交
31bc26dd5a
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      mpi/src/starpu_mpi.c

+ 5 - 2
mpi/src/starpu_mpi.c

@@ -379,10 +379,13 @@ int starpu_mpi_barrier(MPI_Comm comm)
 
 void _starpu_mpi_data_clear(starpu_data_handle_t data_handle)
 {
+	struct _starpu_mpi_data *data = data_handle->mpi_data;
 	_mpi_backend._starpu_mpi_backend_data_clear(data_handle);
 	_starpu_mpi_cache_data_clear(data_handle);
-	_starpu_spin_destroy(&((struct _starpu_mpi_data*) data_handle->mpi_data)->coop_lock);
-	free(data_handle->mpi_data);
+	_starpu_spin_destroy(&data->coop_lock);
+	if (data->redux_map != REDUX_CONTRIB)
+		free(data->redux_map);
+	free(data);
 	data_handle->mpi_data = NULL;
 }