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)
|
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);
|
cycle(philo);
|
||||||
@ -69,10 +69,17 @@ int run_observer(t_all *all)
|
|||||||
i = 0;
|
i = 0;
|
||||||
while(i <= all->number_of_philosophers)
|
while(i <= all->number_of_philosophers)
|
||||||
{
|
{
|
||||||
time_eat = (ft_get_time() - all->start_time) - all->data_philo->philors[i].last_eat;
|
if (all->smert != 42)
|
||||||
if (time_eat > all->time_to_die) // TODO пофиксить смерть
|
{
|
||||||
|
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);
|
return(2);
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
|
|||||||
@ -81,17 +81,9 @@ void run_all_phils(t_all *all)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
i = 0;
|
i = 0;
|
||||||
char *str;
|
|
||||||
void *philo;
|
void *philo;
|
||||||
while(i <= all->number_of_philosophers)
|
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]);
|
philo = (void*)(&all->data_philo->philors[i]);
|
||||||
if (pthread_create(&all->data_philo->philors[i].thread, NULL, (void*)run_trhead, philo) == -1)
|
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++;
|
i++;
|
||||||
}
|
}
|
||||||
if (i > 0)
|
|
||||||
{
|
|
||||||
free(str);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user