From: Dominik Kaiser Date: Tue, 28 Jan 2025 13:29:21 +0000 (+0100) Subject: Destroy Mutexes X-Git-Url: https://git.dkaiser.de/?a=commitdiff_plain;h=fe3e739d151d76d4c9a7bd62226bbc8efa21700f;p=42%2FPhilosophers.git Destroy Mutexes --- diff --git a/philo/include/philo.h b/philo/include/philo.h index ef5565e..ca0440e 100644 --- a/philo/include/philo.h +++ b/philo/include/philo.h @@ -6,7 +6,7 @@ /* By: dkaiser forks); + free_data(data); return (result); } result = pthread_mutex_init(&data->sr_mutex, NULL); if (result != 0) { free(*philos); - free(data->forks); + free_data(data); return (result); } result = init_philos(philos, data); diff --git a/philo/src/main.c b/philo/src/main.c index c928795..85bd230 100644 --- a/philo/src/main.c +++ b/philo/src/main.c @@ -6,11 +6,12 @@ /* By: dkaiser int load_data(t_phdata *data, int argc, char *argv[]) { @@ -38,6 +39,21 @@ int load_data(t_phdata *data, int argc, char *argv[]) return (EXIT_SUCCESS); } +void free_data(t_phdata *data) +{ + int i; + + i = 0; + while (i < data->nbr_of_philos) + { + pthread_mutex_destroy(&data->forks[i].mutex); + i++; + } + free(data->forks); + pthread_mutex_destroy(&data->pme_mutex); + pthread_mutex_destroy(&data->sr_mutex); +} + int main(int argc, char *argv[]) { t_phdata data; @@ -54,6 +70,6 @@ int main(int argc, char *argv[]) return (result); result = run_simulation(data.nbr_of_philos, philos, &data); free(philos); - free(data.forks); + free_data(&data); return (result); }