diff options
Diffstat (limited to 'philo_one/fork.c')
| -rw-r--r-- | philo_one/fork.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/philo_one/fork.c b/philo_one/fork.c deleted file mode 100644 index 3f91b35..0000000 --- a/philo_one/fork.c +++ /dev/null @@ -1,59 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* fork.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/09 23:46:40 by cacharle #+# #+# */ -/* Updated: 2020/02/15 01:23:25 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "philo_one.h" - -t_fork *forks_new(int num) -{ - int i; - t_fork *forks; - - if ((forks = (t_fork*)malloc(sizeof(t_fork) * num)) == NULL) - return (NULL); - i = -1; - while (++i < num) - { - if (pthread_mutex_init(&forks[i], NULL) != 0) - { - forks_destroy(forks, i + 1); - return (NULL); - } - } - return (forks); -} - -void forks_destroy(t_fork *forks, int num) -{ - while (num-- > 0) - pthread_mutex_destroy(&forks[num]); - free(forks); -} - -t_routine_arg *forks_dispatch(t_philo *philos, t_fork *forks, - t_philo_args *args) -{ - int i; - t_routine_arg *routine_args; - - if ((routine_args = (t_routine_arg*)malloc(sizeof(t_routine_arg) - * args->philo_num)) == NULL) - return (NULL); - i = -1; - while (++i < args->philo_num) - { - routine_args[i].args = args; - routine_args[i].philo = philos + i; - routine_args[i].fork_left = forks + i % args->philo_num; - routine_args[i].fork_right = forks + (i + 1) % args->philo_num; - } - return (routine_args); -} |
