From a01bfff67e407004e958901f151cebaaf3acdc32 Mon Sep 17 00:00:00 2001 From: whaffman Date: Mon, 20 Jan 2025 13:29:50 +0100 Subject: [PATCH] fixed fork bug in modulo statement --- .gitignore | 1 + philo/src/create_philos.c | 2 +- philo/src/main.c | 7 ++++--- philo/src/parse_arguments.c | 1 - 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index cd531cf..27c1944 100644 --- a/.gitignore +++ b/.gitignore @@ -51,4 +51,5 @@ modules.order Module.symvers Mkfile.old dkms.conf +philo diff --git a/philo/src/create_philos.c b/philo/src/create_philos.c index e36096e..be0059a 100644 --- a/philo/src/create_philos.c +++ b/philo/src/create_philos.c @@ -14,7 +14,7 @@ int create_philos(t_rules *rules) philo = &(rules->philos[i]); philo->id = i + 1; philo->l_fork = &rules->forks[i]; - philo->r_fork = &rules->forks[i + 1 % rules->n_philos]; + philo->r_fork = &rules->forks[(i + 1) % rules->n_philos]; philo->death = 0; philo->pid = 0; philo->rules = rules; diff --git a/philo/src/main.c b/philo/src/main.c index 20da70c..7afb9dc 100644 --- a/philo/src/main.c +++ b/philo/src/main.c @@ -7,12 +7,13 @@ int main(int argc, char *argv[]) if (FAILURE == parse_arguments(argc, argv, &rules)) return (printf(ERROR_USAGE), EXIT_FAILURE); printf("arguments parsed\n"); - if (FAILURE == create_philos(&rules)) - return (printf(ERROR_MALLOC), EXIT_FAILURE); - printf("philos created\n"); if (FAILURE == create_mutexes(&rules)) return (printf(ERROR_MUTEX), EXIT_FAILURE); printf("mutexes created\n"); + if (FAILURE == create_philos(&rules)) + return (printf(ERROR_MALLOC), EXIT_FAILURE); + printf("philos created\n"); + print_rules(&rules); rules.start_time = get_time() + START_DELAY; if (FAILURE == create_threads(&rules)) return (printf(ERROR_THREADS), EXIT_FAILURE); diff --git a/philo/src/parse_arguments.c b/philo/src/parse_arguments.c index 4dae160..2a16a84 100644 --- a/philo/src/parse_arguments.c +++ b/philo/src/parse_arguments.c @@ -23,6 +23,5 @@ int parse_arguments(int argc,char *argv[], t_rules *rules) rules->forks = malloc(rules->n_philos * sizeof(pthread_mutex_t)); if (!rules->forks) return (FAILURE); - print_rules(rules); return (SUCCESS); } \ No newline at end of file