From 19c377d018d7fc8d438bcce844e51c0c00e81974 Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Sat, 18 Jan 2025 11:55:54 +0100 Subject: [PATCH] Add error handling --- philo/include/philo.h | 4 ++-- philo/src/main.c | 4 ++-- philo/src/simulation.c | 36 +++++++++++++++++++++++++++++++++--- 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/philo/include/philo.h b/philo/include/philo.h index 26871b9..9566136 100644 --- a/philo/include/philo.h +++ b/philo/include/philo.h @@ -6,7 +6,7 @@ /* By: dkaiser id); + *result = EXIT_SUCCESS; + return (result); +} -void run_simulation(int nbr_of_philos, __attribute__((unused))t_philo *philos) +int run_simulation(int nbr_of_philos, t_philo *philos) { int i; + int result; + void *retval; i = 0; + result = EXIT_SUCCESS; while (i < nbr_of_philos) { - printf("Philo %d\n", i); + result = pthread_create(&(philos[i].thread), NULL, (void*) process_philo, &philos[i]); + if (result != 0) + break; i++; } + while (i--) + { + pthread_join(philos[i].thread, &retval); + if (retval == NULL) + result = ft_err(ERR_MALLOC); + else if (*(int *)retval != EXIT_SUCCESS) + { + result = *(int *)retval; + free(retval); + } + } + return (result); } -- 2.47.2