diff --git a/philo/philo b/philo/philo index 8ce4455..c1f20e0 100755 Binary files a/philo/philo and b/philo/philo differ diff --git a/philo/src/create_philos.c b/philo/src/create_philos.c index 08a8a76..e36096e 100644 --- a/philo/src/create_philos.c +++ b/philo/src/create_philos.c @@ -11,7 +11,7 @@ int create_philos(t_rules *rules) return(FAILURE); while (i < rules->n_philos) { - philo = &rules->philos[i]; + philo = &(rules->philos[i]); philo->id = i + 1; philo->l_fork = &rules->forks[i]; philo->r_fork = &rules->forks[i + 1 % rules->n_philos]; diff --git a/philo/src/philo_routine.c b/philo/src/philo_routine.c index f2807e1..4f11377 100644 --- a/philo/src/philo_routine.c +++ b/philo/src/philo_routine.c @@ -17,7 +17,7 @@ int get_finished(t_rules *rules) } void philo_die(t_philo *philo) { - print_status(philo, "died 💀"); + print_status(philo, "died"); philo->death = 1; set_finished(philo->rules); pthread_mutex_unlock(philo->l_fork); @@ -40,18 +40,18 @@ int philo_eat(t_philo *philo) if (philo->id % 2 == 1) { pthread_mutex_lock(philo->r_fork); - print_status(philo, "has taken a fork 🍴"); + print_status(philo, "has taken a fork"); } pthread_mutex_lock(philo->l_fork); - print_status(philo, "has taken a fork 🍴"); + print_status(philo, "has taken a fork"); if (philo->id % 2 == 0) { pthread_mutex_lock(philo->r_fork); - print_status(philo, "has taken a fork 🍴"); + print_status(philo, "has taken a fork"); } if (check_death(philo)) return (philo_die(philo), FAILURE); - print_status(philo, "is eating 🍝"); + print_status(philo, "is eating"); philo->last_meal = get_time(); philo->n_eat++; return (SUCCESS); @@ -77,10 +77,10 @@ void *philo_routine(void *arg) return (philo_die(philo), NULL); pthread_mutex_unlock(philo->l_fork); pthread_mutex_unlock(philo->r_fork); - print_status(philo, "is sleeping 💤"); + print_status(philo, "is sleeping"); if (philo_died_while_sleeping(philo, philo->rules->time_to_sleep)) return (philo_die(philo), NULL); - print_status(philo, "is thinking 💭"); + print_status(philo, "is thinking"); } return (NULL); } \ No newline at end of file diff --git a/philo/src/utils/print_rules.c b/philo/src/utils/print_rules.c index 5f00b7e..7845ff7 100644 --- a/philo/src/utils/print_rules.c +++ b/philo/src/utils/print_rules.c @@ -2,9 +2,30 @@ void print_rules(t_rules *rules) { + int i; + printf("n_philos: %d\n", rules->n_philos); printf("time_to_die: %d\n", rules->time_to_die); printf("time_to_eat: %d\n", rules->time_to_eat); printf("time_to_sleep: %d\n", rules->time_to_sleep); printf("n_must_eat: %d\n", rules->n_must_eat); + i = 0; + while (i < rules->n_philos) + { + printf("philo %d has id: %d\n", i, rules->philos[i].id); + i++; + } + i = 0; + while (i < rules->n_philos) + { + printf("fork %d has pointer:%p\n", i, &rules->forks[i]); + i++; + } + i = 0; + while (i < rules->n_philos) + { + printf("philo %d\n has l_fork %p and r_fork: %p\n", rules->philos[i].id, rules->philos[i].l_fork, rules->philos[i].r_fork); + i++; + } + } \ No newline at end of file