resolution erreur oublis unlock si dead + arret simulation si nombre death precise
This commit is contained in:
@@ -33,7 +33,10 @@ int is_dead(t_philo *philo, struct timeval stime)
|
|||||||
if (philo->global->dead)
|
if (philo->global->dead)
|
||||||
return (-1);
|
return (-1);
|
||||||
if (philo->params->n_eat != -1 && philo->eat >= philo->params->n_eat)
|
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);
|
time = diff_time(philo->t_last_meal, stime);
|
||||||
if (time >= philo->params->t_die)
|
if (time >= philo->params->t_die)
|
||||||
{
|
{
|
||||||
@@ -58,6 +61,7 @@ int print_message(t_philo *philo, char *clr, char *msg)
|
|||||||
{
|
{
|
||||||
if (p_dead > 0)
|
if (p_dead > 0)
|
||||||
ft_printf("%s%i %i died%s\n", B_RED, time_stamp, p_dead, RESET);
|
ft_printf("%s%i %i died%s\n", B_RED, time_stamp, p_dead, RESET);
|
||||||
|
pthread_mutex_unlock(&(philo->global->m_print));
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user