#ifndef STRUCT_H # define STRUCT_H # include # include # include typedef struct s_data { size_t eat_time; size_t sleep_time; size_t life_expectency; size_t nb_philos; ssize_t nb_meals; void **philos; pthread_t *threads; pthread_mutex_t forks_mutex; bool *forks; pthread_mutex_t stop_mutex; bool stop; } t_data; typedef struct s_philo { size_t id; pthread_mutex_t nb_meal_mutex; size_t nb_meal; pthread_mutex_t last_eat_mutex; size_t last_eat; pthread_mutex_t last_sleep_mutex; size_t last_sleep; pthread_mutex_t stop_mutex; bool stop; t_data *data; } t_philo; t_philo *philo_create(t_data *data); t_philo *philo_destoyer(t_philo *philo); void *philo_routine(void *arg); #endif