From 9f5f416a7797672e84c9d92cc24936261a278ed5 Mon Sep 17 00:00:00 2001 From: Etienne Rey-bethbeder Date: Sat, 1 Apr 2023 12:16:42 +0200 Subject: [PATCH] =?UTF-8?q?Plus=20de=20message=20apr=C3=A8s=20la=20mort,?= =?UTF-8?q?=20plus=20de=20.swp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .Makefile.swp | Bin 16384 -> 0 bytes mandatory/.philo.c.swp | Bin 12288 -> 0 bytes mandatory/.threads.c.swo | Bin 16384 -> 0 bytes mandatory/.threads.c.swp | Bin 20480 -> 0 bytes mandatory/philo.h | 5 +++-- mandatory/threads.c | 16 ++++++++-------- mandatory/utils_threads.c | 23 +++++++++++++++++++---- 7 files changed, 30 insertions(+), 14 deletions(-) delete mode 100644 .Makefile.swp delete mode 100644 mandatory/.philo.c.swp delete mode 100644 mandatory/.threads.c.swo delete mode 100644 mandatory/.threads.c.swp diff --git a/.Makefile.swp b/.Makefile.swp deleted file mode 100644 index 8fc8cc081d3fe473a3cdeea050c7fc477763a870..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 ZK@+w2IowbcM)inQsR)wZ{*-i_e*$30D1!h1 diff --git a/mandatory/philo.h b/mandatory/philo.h index e11d6ab..fe0fdb2 100644 --- a/mandatory/philo.h +++ b/mandatory/philo.h @@ -6,7 +6,7 @@ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/03/08 14:51:16 by erey-bet #+# #+# */ -/* Updated: 2023/03/31 17:47:02 by erey-bet ### ########.fr */ +/* Updated: 2023/04/01 11:58:47 by erey-bet ### ########.fr */ /* */ /* ************************************************************************** */ @@ -66,7 +66,8 @@ long long get_utime(void); int verif_die_eating(t_philo *philo, t_only *only, t_config *config); int verif_finish(t_philo *philo, t_only *only); int finish(t_philo *philo, long long last_eat_time); -void message(long long time, int id, char *msg); +void message_die(t_philo *philo, char *msg); +void message(t_philo *philo, char *msg); void init_mutex(pthread_mutex_t *mutex, int nbr); void destroy_mutex(pthread_mutex_t *mutex, int nbr); void free_all(pthread_t *threads, t_same *same, t_philo **philo); diff --git a/mandatory/threads.c b/mandatory/threads.c index 4c4b9ec..e0fd093 100644 --- a/mandatory/threads.c +++ b/mandatory/threads.c @@ -6,7 +6,7 @@ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/03/08 20:08:33 by erey-bet #+# #+# */ -/* Updated: 2023/03/31 18:24:55 by erey-bet ### ########.fr */ +/* Updated: 2023/04/01 11:57:59 by erey-bet ### ########.fr */ /* */ /* ************************************************************************** */ @@ -45,7 +45,7 @@ void init_philo(t_philo *philo, t_only *only, if (only->id % 2 == 1 || (*nbr_philo % 2 == 1 && only->id == *nbr_philo - 1)) { - message(only->time, only->id, "is thinking\n"); + message(philo, "is thinking\n"); if (get_utime() - only->last_eat_time + config->time_eat >= config->time_die) usleep(config->time_die - (get_utime() - only->last_eat_time)); @@ -70,7 +70,7 @@ int in_loop_eat_sleep(t_philo *philo, t_only *only, *philo->same->all_eat += 1; pthread_mutex_unlock(&philo->same->mutex[nbr_philo + 1]); } - message(only->time, only->id, "is sleeping\n"); + message(philo, "is sleeping\n"); pthread_mutex_unlock(&philo->same->mutex[only->next_id]); pthread_mutex_unlock(&philo->same->mutex[only->id]); if (get_utime() - only->last_eat_time + config->time_sleep @@ -92,7 +92,7 @@ void loop_philosopher(t_philo *philo, t_only *only, if (!finish(philo, only->last_eat_time) && !pthread_mutex_lock(&philo->same->mutex[only->id])) { - message(only->time, only->id, "has taken a fork\n"); + message(philo, "has taken a fork\n"); while (only->id == only->next_id && !finish(philo, only->last_eat_time)) ; @@ -101,8 +101,8 @@ void loop_philosopher(t_philo *philo, t_only *only, { if (verif_finish(philo, only)) break ; - message(only->time, only->id, "has taken a fork\n"); - message(only->time, only->id, "is eating\n"); + message(philo, "has taken a fork\n"); + message(philo, "is eating\n"); if (!in_loop_eat_sleep(philo, only, config, nbr_philo)) break ; } @@ -110,7 +110,7 @@ void loop_philosopher(t_philo *philo, t_only *only, pthread_mutex_unlock(&philo->same->mutex[only->id]); } if (!finish(philo, only->last_eat_time)) - message(only->time, only->id, "is thinking\n"); + message(philo, "is thinking\n"); } } @@ -130,7 +130,7 @@ void *philosopher(t_philo *philo) || (config->must_eat > -1 && only->eat < config->must_eat))) { *philo->same->death = 1; - message(only->time, only->id, "died\n"); + message_die(philo, "died\n"); } pthread_mutex_unlock(&philo->same->mutex[nbr_philo]); pthread_mutex_unlock(&philo->same->mutex[nbr_philo + 1]); diff --git a/mandatory/utils_threads.c b/mandatory/utils_threads.c index 9edffde..50df9d9 100644 --- a/mandatory/utils_threads.c +++ b/mandatory/utils_threads.c @@ -6,7 +6,7 @@ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/03/29 20:44:51 by erey-bet #+# #+# */ -/* Updated: 2023/03/30 18:10:31 by erey-bet ### ########.fr */ +/* Updated: 2023/04/01 12:08:51 by erey-bet ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,20 +20,35 @@ long long get_utime(void) return (time.tv_sec * 1000000 + time.tv_usec); } -void message(long long time, int id, char *msg) +void message_die(t_philo *philo, char *msg) { char send[1024]; int i; - i = ft_lltos(send, (get_utime() - time) / 1000); + i = ft_lltos(send, (get_utime() - philo->only->time) / 1000); send[i++] = ' '; - i += ft_lltos(send + i, id + 1); + i += ft_lltos(send + i, philo->only->id + 1); send[i++] = ' '; while (*msg) send[i++] = *msg++; write(1, send, i); } +void message(t_philo *philo, char *msg) +{ + char send[1024]; + int i; + + i = ft_lltos(send, (get_utime() - philo->only->time) / 1000); + send[i++] = ' '; + i += ft_lltos(send + i, philo->only->id + 1); + send[i++] = ' '; + while (*msg) + send[i++] = *msg++; + if (!finish(philo, philo->only->last_eat_time)) + write(1, send, i); +} + int verif_finish(t_philo *philo, t_only *only) { if (finish(philo, only->last_eat_time))