fixed fork bug in modulo statement
This commit is contained in:
parent
7285921f11
commit
a01bfff67e
1
.gitignore
vendored
1
.gitignore
vendored
@ -51,4 +51,5 @@ modules.order
|
|||||||
Module.symvers
|
Module.symvers
|
||||||
Mkfile.old
|
Mkfile.old
|
||||||
dkms.conf
|
dkms.conf
|
||||||
|
philo
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@ int create_philos(t_rules *rules)
|
|||||||
philo = &(rules->philos[i]);
|
philo = &(rules->philos[i]);
|
||||||
philo->id = i + 1;
|
philo->id = i + 1;
|
||||||
philo->l_fork = &rules->forks[i];
|
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->death = 0;
|
||||||
philo->pid = 0;
|
philo->pid = 0;
|
||||||
philo->rules = rules;
|
philo->rules = rules;
|
||||||
|
|||||||
@ -7,12 +7,13 @@ int main(int argc, char *argv[])
|
|||||||
if (FAILURE == parse_arguments(argc, argv, &rules))
|
if (FAILURE == parse_arguments(argc, argv, &rules))
|
||||||
return (printf(ERROR_USAGE), EXIT_FAILURE);
|
return (printf(ERROR_USAGE), EXIT_FAILURE);
|
||||||
printf("arguments parsed\n");
|
printf("arguments parsed\n");
|
||||||
if (FAILURE == create_philos(&rules))
|
|
||||||
return (printf(ERROR_MALLOC), EXIT_FAILURE);
|
|
||||||
printf("philos created\n");
|
|
||||||
if (FAILURE == create_mutexes(&rules))
|
if (FAILURE == create_mutexes(&rules))
|
||||||
return (printf(ERROR_MUTEX), EXIT_FAILURE);
|
return (printf(ERROR_MUTEX), EXIT_FAILURE);
|
||||||
printf("mutexes created\n");
|
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;
|
rules.start_time = get_time() + START_DELAY;
|
||||||
if (FAILURE == create_threads(&rules))
|
if (FAILURE == create_threads(&rules))
|
||||||
return (printf(ERROR_THREADS), EXIT_FAILURE);
|
return (printf(ERROR_THREADS), EXIT_FAILURE);
|
||||||
|
|||||||
@ -23,6 +23,5 @@ int parse_arguments(int argc,char *argv[], t_rules *rules)
|
|||||||
rules->forks = malloc(rules->n_philos * sizeof(pthread_mutex_t));
|
rules->forks = malloc(rules->n_philos * sizeof(pthread_mutex_t));
|
||||||
if (!rules->forks)
|
if (!rules->forks)
|
||||||
return (FAILURE);
|
return (FAILURE);
|
||||||
print_rules(rules);
|
|
||||||
return (SUCCESS);
|
return (SUCCESS);
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user