From 632b7d81d6c7943e5e39812068c77df4681ebed2 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Thu, 31 Dec 2020 19:22:37 +0100 Subject: Added usleep in death checking threads --- philo_one/src/main.c | 8 ++++---- philo_three/src/child.c | 5 ++++- philo_two/src/routine.c | 5 ++++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/philo_one/src/main.c b/philo_one/src/main.c index a9a6a63..0c4b95c 100644 --- a/philo_one/src/main.c +++ b/philo_one/src/main.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/11/24 05:53:02 by cacharle #+# #+# */ -/* Updated: 2020/12/30 14:04:42 by charles ### ########.fr */ +/* Updated: 2020/12/31 19:22:08 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -60,9 +60,9 @@ int main(int argc, char **argv) free(philos); return (1); } - while (conf.all_alive && (conf.meal_num != -1 && conf.meal_num_finished_counter != conf.philo_num)) - /* printf("%ld\n", conf.meal_num_finished_counter); */ - ; + while (conf.all_alive) + if (conf.meal_num != -1 && conf.meal_num_finished_counter == conf.philo_num) + break; conf.all_alive = false; philos_detach(philos, conf.philo_num); forks_destroy(forks, conf.philo_num); diff --git a/philo_three/src/child.c b/philo_three/src/child.c index 2e9b566..2b17960 100644 --- a/philo_three/src/child.c +++ b/philo_three/src/child.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/09/30 14:36:16 by cacharle #+# #+# */ -/* Updated: 2020/10/05 15:02:10 by cacharle ### ########.fr */ +/* Updated: 2020/12/31 19:12:12 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,7 +18,10 @@ void *routine_death(t_philo *philo) current = h_time_now(); while (current - philo->time_last_eat < philo->conf->timeout_death) + { current = h_time_now(); + usleep(200); + } event_die(philo); return (NULL); } diff --git a/philo_two/src/routine.c b/philo_two/src/routine.c index fd31ca2..29f2e23 100644 --- a/philo_two/src/routine.c +++ b/philo_two/src/routine.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/14 23:00:07 by cacharle #+# #+# */ -/* Updated: 2020/10/05 16:03:38 by cacharle ### ########.fr */ +/* Updated: 2020/12/31 19:16:32 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -42,7 +42,10 @@ void *routine_death(t_philo *arg) current = h_time_now(); while (arg->conf->all_alive && current - arg->time_last_eat < arg->conf->timeout_death) + { current = h_time_now(); + usleep(200); + } event_die(arg); return (NULL); } -- cgit