the end philo one
This commit is contained in:
parent
dc72e9fd05
commit
e102f3c553
@ -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++;
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user