#include #include #include #include #include "./data.h" #include "philo.h" #include "philos.h" #include "struct.h" bool data_init(t_data *data) { data->forks = malloc(sizeof(bool) * data->nb_philos); if (data->forks == NULL) return (1); data->philos = malloc(sizeof(t_philo) * data->nb_philos); if (data->philos == NULL) { free(data->forks); return (1); } data->threads = malloc(sizeof(pthread_t) * data->nb_philos); if (data->forks == NULL) { free(data->philos); free(data->forks); return (1); } data->stop = 0; data->nb_meals = 0; return (0); } void data_destroyer(t_data *data) { free(data->threads); free(data->forks); pthread_mutex_destroy(&data->nb_meal_mutex); pthread_mutex_destroy(&data->forks_mutex); pthread_mutex_destroy(&data->stop_mutex); philos_destroyer(data); }