|
@@ -253,6 +253,7 @@ int _starpu_mpi_task_decode_v(struct starpu_codelet *codelet, int me, int nb_nod
|
|
|
int ret = _starpu_mpi_find_executee_node(data, mode, me, do_execute, &inconsistent_execute, xrank);
|
|
|
if (ret == -EINVAL)
|
|
|
{
|
|
|
+ free(descrs);
|
|
|
return ret;
|
|
|
}
|
|
|
}
|
|
@@ -279,6 +280,7 @@ int _starpu_mpi_task_decode_v(struct starpu_codelet *codelet, int me, int nb_nod
|
|
|
int ret = _starpu_mpi_find_executee_node(datas[i], mode, me, do_execute, &inconsistent_execute, xrank);
|
|
|
if (ret == -EINVAL)
|
|
|
{
|
|
|
+ free(descrs);
|
|
|
return ret;
|
|
|
}
|
|
|
}
|
|
@@ -306,6 +308,7 @@ int _starpu_mpi_task_decode_v(struct starpu_codelet *codelet, int me, int nb_nod
|
|
|
int ret = _starpu_mpi_find_executee_node(_descrs[i].handle, mode, me, do_execute, &inconsistent_execute, xrank);
|
|
|
if (ret == -EINVAL)
|
|
|
{
|
|
|
+ free(descrs);
|
|
|
return ret;
|
|
|
}
|
|
|
}
|
|
@@ -446,11 +449,7 @@ int _starpu_mpi_task_build_v(MPI_Comm comm, struct starpu_codelet *codelet, stru
|
|
|
|
|
|
/* Find out whether we are to execute the data because we own the data to be written to. */
|
|
|
ret = _starpu_mpi_task_decode_v(codelet, me, nb_nodes, &xrank, &do_execute, &descrs, &nb_data, varg_list);
|
|
|
- if (ret < 0)
|
|
|
- {
|
|
|
- free(descrs);
|
|
|
- return ret;
|
|
|
- }
|
|
|
+ if (ret < 0) return ret;
|
|
|
|
|
|
/* Send and receive data as requested */
|
|
|
for(i=0 ; i<nb_data ; i++)
|
|
@@ -582,11 +581,7 @@ int starpu_mpi_task_post_build(MPI_Comm comm, struct starpu_codelet *codelet, ..
|
|
|
/* Find out whether we are to execute the data because we own the data to be written to. */
|
|
|
ret = _starpu_mpi_task_decode_v(codelet, me, nb_nodes, &xrank, &do_execute, &descrs, &nb_data, varg_list);
|
|
|
va_end(varg_list);
|
|
|
- if (ret < 0)
|
|
|
- {
|
|
|
- free(descrs);
|
|
|
- return ret;
|
|
|
- }
|
|
|
+ if (ret < 0) return ret;
|
|
|
|
|
|
return _starpu_mpi_task_postbuild_v(comm, xrank, do_execute, descrs, nb_data);
|
|
|
}
|