Browse Source

examples/cholesky/: make sure we free matrix after using it

Nathalie Furmento 13 years ago
parent
commit
73dc3cf921
2 changed files with 14 additions and 8 deletions
  1. 8 4
      examples/cholesky/cholesky_grain_tag.c
  2. 6 4
      examples/cholesky/cholesky_tag.c

+ 8 - 4
examples/cholesky/cholesky_grain_tag.c

@@ -308,16 +308,20 @@ void cholesky_grain(float *matA, unsigned size, unsigned ld, unsigned nblocks, u
 	double flop = (1.0f*size*size*size)/3.0f;
 	FPRINTF(stderr, "Synthetic GFlops : %2.2f\n", (flop/timing/1000.0f));
 
+}
+
+static void shutdown_system(float **matA, unsigned pinned)
+{
 	if (pinned)
 	{
-	     starpu_free(matA);
+	     starpu_free(*matA);
 	}
 	else
 	{
-	     free(matA);
+	     free(*matA);
 	}
-	starpu_helper_cublas_shutdown();
 
+	starpu_helper_cublas_shutdown();
 	starpu_shutdown();
 }
 
@@ -412,6 +416,6 @@ int main(int argc, char **argv)
 	free(test_mat);
 #endif
 
-	free(mat);
+	shutdown_system(&mat, pinned);
 	return 0;
 }

+ 6 - 4
examples/cholesky/cholesky_tag.c

@@ -292,19 +292,20 @@ static void cholesky(float *matA, unsigned size, unsigned ld, unsigned nblocks,
 	_cholesky(dataA, nblocks);
 
 	starpu_data_unregister(dataA);
+}
 
+static void shutdown_system(float **matA, unsigned pinned)
+{
 	if (pinned)
 	{
-		starpu_free(matA);
+		starpu_free(*matA);
 	}
 	else
 	{
-		free(matA);
+		free(*matA);
 	}
 
-
 	starpu_helper_cublas_shutdown();
-
 	starpu_shutdown();
 }
 
@@ -401,5 +402,6 @@ int main(int argc, char **argv)
 	free(test_mat);
 #endif
 
+	shutdown_system(&mat, pinned);
 	return 0;
 }