/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* 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(); ft_putnum(time, 7); ft_putchar(' '); ft_putnum(id + 1, 3); ft_putchar(' '); ft_putstr(str); ft_putchar('\n'); } 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"); }