fixed fork bug in modulo statement

This commit is contained in:
whaffman 2025-01-20 13:29:50 +01:00
parent 7285921f11
commit a01bfff67e
4 changed files with 6 additions and 5 deletions

1
.gitignore vendored
View File

@ -51,4 +51,5 @@ modules.order
Module.symvers
Mkfile.old
dkms.conf
philo

View File

@ -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;

View File

@ -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);

View File

@ -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);
}