Selaa lähdekoodia

Properly free memory.

Cyril Roelandt 13 vuotta sitten
vanhempi
commit
276db80eff
1 muutettua tiedostoa jossa 23 lisäystä ja 0 poistoa
  1. 23 0
      tests/datawizard/manual_reduction.c

+ 23 - 0
tests/datawizard/manual_reduction.c

@@ -228,7 +228,30 @@ int main(int argc, char **argv)
 
 	/* Destroy all per-worker handles */
 	for (worker = 0; worker < nworkers; worker++)
+	{
 		starpu_data_unregister_no_coherency(per_worker_handle[worker]);
+		switch(starpu_worker_get_type(worker))
+		{
+		case STARPU_CPU_WORKER:
+			free(per_worker[worker]);
+			break;
+#ifdef STARPU_USE_CUDA
+		case STARPU_CUDA_WORKER:
+			cudaFree(per_worker[worker]);
+			break;
+#endif /* !STARPU_USE_CUDA */
+#ifdef STARPU_USE_OPENCL
+		case STARPU_OPENCL_WORKER:
+			clReleaseMemObject(per_worker[worker]);
+			break;
+#endif /* !STARPU_USE_OPENCL */
+#ifdef STARPU_USE_GORDON
+		case STARPU_GORDON_WORKER: /* Not supported */	
+#endif /* ! STARPU_USE_GORDON */
+		default:
+			STARPU_ABORT();
+		}
+	}
 
 	starpu_shutdown();