|
@@ -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;
|
|
|
}
|
|
|
|