Przeglądaj źródła

- fix missing frees

Olivier Aumage 11 lat temu
rodzic
commit
8cf9e4237f
1 zmienionych plików z 5 dodań i 0 usunięć
  1. 5 0
      src/util/openmp_runtime_support.c

+ 5 - 0
src/util/openmp_runtime_support.c

@@ -759,6 +759,7 @@ void starpu_omp_shutdown(void)
 	STARPU_ASSERT(_global_state.hash_workers == NULL);
 	_starpu_spin_unlock(&_global_state.hash_workers_lock);
 	_starpu_spin_destroy(&_global_state.hash_workers_lock);
+	_starpu_omp_environment_exit();
 	STARPU_PTHREAD_KEY_DELETE(omp_task_key);
 	STARPU_PTHREAD_KEY_DELETE(omp_thread_key);
 }
@@ -1011,6 +1012,8 @@ void starpu_omp_parallel_region(const struct starpu_omp_parallel_region_attr *at
 	}
 	STARPU_ASSERT(new_region->nb_threads == 0);
 	task->nested_region = NULL;
+	free(new_region->icvs.bind_var);
+	free(new_region->icvs.nthreads_var);
 	destroy_omp_region_struct(new_region);
 }
 
@@ -1975,6 +1978,7 @@ static void _starpu_omp_lock_destroy(void **_internal)
 	condition_exit(&_lock->cond);
 	_starpu_spin_destroy(&_lock->lock);
 	memset(_lock, 0, sizeof(*_lock));
+	free(_lock);
 	*_internal = NULL;
 }
 
@@ -2034,6 +2038,7 @@ static void _starpu_omp_nest_lock_destroy(void **_internal)
 	condition_exit(&_nest_lock->cond);
 	_starpu_spin_destroy(&_nest_lock->lock);
 	memset(_nest_lock, 0, sizeof(*_nest_lock));
+	free(_nest_lock);
 	*_internal = NULL;
 }