Переглянути джерело

port r14838 from 1.2: revert 14821 and explicitly free descrs, fixes stencil5 crash

Samuel Thibault 10 роки тому
батько
коміт
4a4db1d763
1 змінених файлів з 5 додано та 10 видалено
  1. 5 10
      mpi/src/starpu_mpi_task_insert.c

+ 5 - 10
mpi/src/starpu_mpi_task_insert.c

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