From 47beba686ff9d2aab63738fba7176a5235703d05 Mon Sep 17 00:00:00 2001 From: yctct Date: Sun, 13 Sep 2026 18:58:14 +0200 Subject: Add all files, first commit --- src/destroy.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/destroy.c (limited to 'src/destroy.c') diff --git a/src/destroy.c b/src/destroy.c new file mode 100644 index 0000000..6a274ad --- /dev/null +++ b/src/destroy.c @@ -0,0 +1,66 @@ +#include "codexion.h" + +static void destroy_mutex_philos(t_sim *sim) +{ + t_philo **philos; + t_philo *philo; + int number_of_philos; + + number_of_philos = sim->number_of_philos; + philos = sim->philos; + while (number_of_philos-- > 0) + { + philo = *philos++; + (void)pthread_mutex_destroy(&philo->mutex_number_of_eats_done); + (void)pthread_mutex_destroy(&philo->mutex_beginning_last_eat_time); + (void)pthread_mutex_destroy(&philo->mutex_id); + (void)pthread_mutex_destroy(&philo->mutex_sim); + } +} + +static void destroy_mutex_forks(t_sim *sim) +{ + t_fork **forks; + t_fork *fork; + int number_of_philos; + + number_of_philos = sim->number_of_philos; + forks = sim->forks; + while (number_of_philos-- > 0) + { + fork = *forks++; + (void)pthread_mutex_destroy(&fork->mutex); + (void)pthread_mutex_destroy(&fork->mutex_last_released); + (void)pthread_mutex_destroy(&fork->mutex_right_philo); + (void)pthread_mutex_destroy(&fork->mutex_left_philo); + (void)pthread_mutex_destroy(&fork->mutex_ticket_next); + (void)pthread_mutex_destroy(&fork->mutex_cond); + (void)pthread_mutex_destroy(&fork->mutex_sim); + (void)pthread_cond_destroy(&fork->cond_signal); + (void)pthread_mutex_destroy(&fork->mutex_pq); + } +} + +static void destroy_mutex_sim(t_sim *sim) +{ + (void)pthread_mutex_destroy(&sim->mutex_philo_starved); + (void)pthread_mutex_destroy(&sim->mutex_print_log); + (void)pthread_mutex_destroy(&sim->mutex_cooldown); + (void)pthread_mutex_destroy(&sim->mutex_start_time); + (void)pthread_mutex_destroy(&sim->mutex_number_of_eat_required); + (void)pthread_mutex_destroy(&sim->mutex_philos); + (void)pthread_mutex_destroy(&sim->mutex_number_of_philos); + (void)pthread_mutex_destroy(&sim->mutex_time_to_starve); + (void)pthread_mutex_destroy(&sim->mutex_time_to_think); + (void)pthread_mutex_destroy(&sim->mutex_time_to_reflect); + (void)pthread_mutex_destroy(&sim->mutex_time_to_eat); + (void)pthread_mutex_destroy(&sim->mutex_scheduler); + (void)pthread_mutex_destroy(&sim->mutex_forks); +} + +void destroy_mutex(t_sim *sim) +{ + destroy_mutex_philos(sim); + destroy_mutex_forks(sim); + destroy_mutex_sim(sim); +} -- cgit v1.2.3