/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* print.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: cchauvet #include #include #include #include "./time.h" #include "./utils/utils.h" static void print(t_data *data, size_t id, char *str) { size_t time; bool stop; pthread_mutex_lock(&data->print_mutex); pthread_mutex_lock(&data->stop_mutex); stop = data->stop; pthread_mutex_unlock(&data->stop_mutex); if (stop == false) { time = get_time(); printf("%07zu %07zu %s\n", time, id + 1, str); } pthread_mutex_unlock(&data->print_mutex); } void print_take_a_fork(t_philo *philo) { print(philo->data, philo->id, "has taken a fork"); } void print_eating(t_philo *philo) { print(philo->data, philo->id, "is eating"); } void print_sleeping(t_philo *philo) { print(philo->data, philo->id, "is sleeping"); } void print_thinking(t_philo *philo) { print(philo->data, philo->id, "is thinking"); }