/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/01/17 10:23:19 by dkaiser #+# #+# */
-/* Updated: 2025/01/28 13:34:48 by dkaiser ### ########.fr */
+/* Updated: 2025/01/28 14:26:14 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
} t_philo;
int init(t_philo **philos, t_phdata *data);
+void free_data(t_phdata *data);
int run_simulation(int nbr_of_philos, t_philo *philos,
t_phdata *data);
int philo_die(t_philo *philo);
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/01/28 13:12:57 by dkaiser #+# #+# */
-/* Updated: 2025/01/28 13:25:15 by dkaiser ### ########.fr */
+/* Updated: 2025/01/28 14:28:58 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
if (result != 0)
{
free(*philos);
- free(data->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);
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/01/14 17:13:30 by dkaiser #+# #+# */
-/* Updated: 2025/01/28 13:49:55 by dkaiser ### ########.fr */
+/* Updated: 2025/01/28 14:25:27 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
#include "philo.h"
+#include <pthread.h>
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;
return (result);
result = run_simulation(data.nbr_of_philos, philos, &data);
free(philos);
- free(data.forks);
+ free_data(&data);
return (result);
}