diff --git a/srcs/generic.c b/srcs/generic.c index 2fd16c2..c05574e 100644 --- a/srcs/generic.c +++ b/srcs/generic.c @@ -33,7 +33,10 @@ int is_dead(t_philo *philo, struct timeval stime) if (philo->global->dead) return (-1); if (philo->params->n_eat != -1 && philo->eat >= philo->params->n_eat) - return (-1); + { + philo->global->dead = 1; + return (philo->p_nbr); + } time = diff_time(philo->t_last_meal, stime); if (time >= philo->params->t_die) { @@ -58,6 +61,7 @@ int print_message(t_philo *philo, char *clr, char *msg) { if (p_dead > 0) ft_printf("%s%i %i died%s\n", B_RED, time_stamp, p_dead, RESET); + pthread_mutex_unlock(&(philo->global->m_print)); return (1); } else