the end philo one

This commit is contained in:
Denis 2021-05-16 01:41:18 +03:00
parent dc72e9fd05
commit e102f3c553
2 changed files with 11 additions and 16 deletions

View File

@ -16,7 +16,7 @@ void *run_trhead(t_philo *philo)
{
if (philo->count_eat == philo->all_struct->number_of_times_each_philosopher_must_eat)
{
exit(0); // TODO реализовать завершение программы
philo->all_struct->smert = 42; // TODO реализовать завершение программы
}
}
cycle(philo);
@ -69,10 +69,17 @@ int run_observer(t_all *all)
i = 0;
while(i <= all->number_of_philosophers)
{
time_eat = (ft_get_time() - all->start_time) - all->data_philo->philors[i].last_eat;
if (time_eat > all->time_to_die) // TODO пофиксить смерть
if (all->smert != 42)
{
time_eat = (ft_get_time() - all->start_time) - all->data_philo->philors[i].last_eat;
if (time_eat > all->time_to_die) // TODO пофиксить смерть
{
printf("%ld---------------симуляция окончена фил %d умер ---------------\n", ft_get_time() - all->start_time, i + 1);
return(2);
}
}
else
{
printf("%ld---------------симуляция окончена фил %d умер ---------------\n", ft_get_time() - all->start_time, i + 1);
return(2);
}
i++;

View File

@ -81,17 +81,9 @@ void run_all_phils(t_all *all)
{
int i;
i = 0;
char *str;
void *philo;
while(i <= all->number_of_philosophers)
{
if (i != 0)
{
free(str);
}
str = malloc(sizeof(char) * 80);
str[80] = 0;
sprintf(str, "t%d", i + 1);
philo = (void*)(&all->data_philo->philors[i]);
if (pthread_create(&all->data_philo->philors[i].thread, NULL, (void*)run_trhead, philo) == -1)
{
@ -103,8 +95,4 @@ void run_all_phils(t_all *all)
}
i++;
}
if (i > 0)
{
free(str);
}
}