Adding some stuff

This commit is contained in:
Raphaël 2024-07-23 20:03:57 +02:00
parent 3d145fb1e3
commit c2db9acc15
4 changed files with 16 additions and 97 deletions

View file

@ -6,7 +6,7 @@
/* By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/04 11:30:25 by rparodi #+# #+# */
/* Updated: 2024/07/18 21:07:01 by rparodi ### ########.fr */
/* Updated: 2024/07/23 19:51:07 by rparodi ### ########.fr */
/* */
/* ************************************************************************** */
@ -21,9 +21,12 @@ void *ft_routine(void *ptr)
return (NULL);
while (!dead_loop(philo))
{
ft_start_eating(philo);
ft_sleeping(philo);
ft_thinking(philo);
if (check_dead(philo) == false)
ft_start_eating(philo);
if (check_dead(philo) == false)
ft_sleeping(philo);
if (check_dead(philo) == false)
ft_thinking(philo);
}
return (philo);
}

View file

@ -6,11 +6,12 @@
/* By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/04 11:42:37 by rparodi #+# #+# */
/* Updated: 2024/07/18 21:18:10 by rparodi ### ########.fr */
/* Updated: 2024/07/23 20:03:47 by rparodi ### ########.fr */
/* */
/* ************************************************************************** */
#include "../includes/philo.h"
#include <pthread.h>
t_error ft_parsing_args(t_i32 argc, t_str *argv, t_philo *philo)
{
@ -28,7 +29,7 @@ t_error ft_parsing_args(t_i32 argc, t_str *argv, t_philo *philo)
philo->nb_eat = tmp;
}
else
philo->nb_eat = -1;
philo->nb_eat = ~0u;
philo->nb_philo = tmp;
ft_atou(argv[2], &tmp);
philo->t_death = tmp;
@ -92,10 +93,11 @@ t_error ft_init(t_i32 argc, t_str *argv, t_program *prog, t_philo *philo)
{
static t_mutex forks[MAXSUPPORT] = {0};
pthread_mutex_init(&prog->print_lock, NULL);
pthread_mutex_init(&prog->dead_lock, NULL);
pthread_mutex_init(&prog->meal_lock, NULL);
pthread_mutex_init(&prog->check_eating_count, NULL);
prog->print_lock = (t_mutex)PTHREAD_MUTEX_INITIALIZER;
prog->dead_lock = (t_mutex)PTHREAD_MUTEX_INITIALIZER;
prog->meal_lock = (t_mutex)PTHREAD_MUTEX_INITIALIZER;
prog->check_eating_count = (t_mutex)PTHREAD_MUTEX_INITIALIZER;
ft_init_fork(prog->philos, forks);
prog->philos = philo;
prog->dead_flag = false;
if (ft_init_philo(argc, argv, prog, forks))

View file

@ -6,7 +6,7 @@
/* By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/11 11:42:31 by rparodi #+# #+# */
/* Updated: 2024/07/18 21:18:49 by rparodi ### ########.fr */
/* Updated: 2024/07/23 19:49:21 by rparodi ### ########.fr */
/* */
/* ************************************************************************** */
@ -51,8 +51,6 @@ void counting_launch(t_philo *philo, t_u8 *counter)
t_usize i;
i = 0;
if (philo->nb_eat == -1)
return ;
while (i < philo[0].nb_philo)
{
pthread_mutex_lock(philo[i].check_eating_count);