diff --git a/philo/main.o b/philo/main.o new file mode 100644 index 0000000..5f78370 Binary files /dev/null and b/philo/main.o differ diff --git a/philo/manage_threads.c b/philo/manage_threads.c index 27d0df6..01b621f 100644 --- a/philo/manage_threads.c +++ b/philo/manage_threads.c @@ -19,10 +19,10 @@ static t_same *create_struct_same(t_config *config) same = ft_calloc(sizeof(t_same), 1); if (!same) return (NULL); - same->mutex = ft_calloc(sizeof(pthread_mutex_t), config->nbr_philo + 2); + same->mutex = ft_calloc(sizeof(pthread_mutex_t), config->nbr_philo + 3); if (!same->mutex) return (NULL); - init_mutex(same->mutex, config->nbr_philo + 2); + init_mutex(same->mutex, config->nbr_philo + 3); same->config = config; same->death = ft_calloc(sizeof(int), 1); if (!same->death) diff --git a/philo/manage_threads.o b/philo/manage_threads.o new file mode 100644 index 0000000..4b6b8a8 Binary files /dev/null and b/philo/manage_threads.o differ diff --git a/philo/parsing.o b/philo/parsing.o new file mode 100644 index 0000000..7907016 Binary files /dev/null and b/philo/parsing.o differ diff --git a/philo/philo b/philo/philo new file mode 100755 index 0000000..4631124 Binary files /dev/null and b/philo/philo differ diff --git a/philo/threads.o b/philo/threads.o new file mode 100644 index 0000000..26384c8 Binary files /dev/null and b/philo/threads.o differ diff --git a/philo/utils/ft_atoi.o b/philo/utils/ft_atoi.o new file mode 100644 index 0000000..209935f Binary files /dev/null and b/philo/utils/ft_atoi.o differ diff --git a/philo/utils/ft_atoi_check.o b/philo/utils/ft_atoi_check.o new file mode 100644 index 0000000..5a5de7f Binary files /dev/null and b/philo/utils/ft_atoi_check.o differ diff --git a/philo/utils/ft_bzero.o b/philo/utils/ft_bzero.o new file mode 100644 index 0000000..c276f2d Binary files /dev/null and b/philo/utils/ft_bzero.o differ diff --git a/philo/utils/ft_calloc.o b/philo/utils/ft_calloc.o new file mode 100644 index 0000000..1ba7dfe Binary files /dev/null and b/philo/utils/ft_calloc.o differ diff --git a/philo/utils/ft_itoa.o b/philo/utils/ft_itoa.o new file mode 100644 index 0000000..f053e94 Binary files /dev/null and b/philo/utils/ft_itoa.o differ diff --git a/philo/utils/ft_lltos.c b/philo/utils/ft_lltos.c index 3a78586..bd2d1f2 100644 --- a/philo/utils/ft_lltos.c +++ b/philo/utils/ft_lltos.c @@ -30,7 +30,7 @@ int ft_lltos(char *str, long long n) q *= 10; while (q > 0) { - str[i++] = (n / q % 10) + 48; + str[i++] = (v / q % 10) + 48; q /= 10; } str[i] = '\0'; diff --git a/philo/utils/ft_lltos.o b/philo/utils/ft_lltos.o new file mode 100644 index 0000000..13ff315 Binary files /dev/null and b/philo/utils/ft_lltos.o differ diff --git a/philo/utils/ft_memset.o b/philo/utils/ft_memset.o new file mode 100644 index 0000000..5777efa Binary files /dev/null and b/philo/utils/ft_memset.o differ diff --git a/philo/utils/ft_putchar_fd.o b/philo/utils/ft_putchar_fd.o new file mode 100644 index 0000000..e3d2fef Binary files /dev/null and b/philo/utils/ft_putchar_fd.o differ diff --git a/philo/utils/ft_putnbr_fd.o b/philo/utils/ft_putnbr_fd.o new file mode 100644 index 0000000..03081a9 Binary files /dev/null and b/philo/utils/ft_putnbr_fd.o differ diff --git a/philo/utils/ft_putstr_fd.o b/philo/utils/ft_putstr_fd.o new file mode 100644 index 0000000..98d22cc Binary files /dev/null and b/philo/utils/ft_putstr_fd.o differ diff --git a/philo/utils/ft_strcat.o b/philo/utils/ft_strcat.o new file mode 100644 index 0000000..9e88688 Binary files /dev/null and b/philo/utils/ft_strcat.o differ diff --git a/philo/utils/ft_strcpy.o b/philo/utils/ft_strcpy.o new file mode 100644 index 0000000..0c148e1 Binary files /dev/null and b/philo/utils/ft_strcpy.o differ diff --git a/philo/utils/ft_strlen.o b/philo/utils/ft_strlen.o new file mode 100644 index 0000000..aea27dc Binary files /dev/null and b/philo/utils/ft_strlen.o differ diff --git a/philo/utils/utils.a b/philo/utils/utils.a new file mode 100644 index 0000000..9db03f0 Binary files /dev/null and b/philo/utils/utils.a differ diff --git a/philo/utils_manage_threads.c b/philo/utils_manage_threads.c index 8c7817b..d524a14 100644 --- a/philo/utils_manage_threads.c +++ b/philo/utils_manage_threads.c @@ -34,7 +34,7 @@ void free_all(pthread_t *threads, t_same *same, t_philo **philo) { int i; - destroy_mutex(same->mutex, same->config->nbr_philo + 2); + destroy_mutex(same->mutex, same->config->nbr_philo + 3); if (threads) free(threads); if (same && same->mutex) diff --git a/philo/utils_manage_threads.o b/philo/utils_manage_threads.o new file mode 100644 index 0000000..39f391b Binary files /dev/null and b/philo/utils_manage_threads.o differ diff --git a/philo/utils_threads.c b/philo/utils_threads.c index 659681c..6830fde 100644 --- a/philo/utils_threads.c +++ b/philo/utils_threads.c @@ -27,6 +27,8 @@ void message_die(t_philo *philo, char *msg) int i; config = philo->same->config; + + pthread_mutex_lock(&philo->same->mutex[config->nbr_philo + 2]); i = ft_lltos(send, (get_utime() - philo->same->time) / 1000); send[i++] = ' '; i += ft_lltos(send + i, philo->only->id + 1); @@ -34,6 +36,7 @@ void message_die(t_philo *philo, char *msg) while (*msg) send[i++] = *msg++; write(1, send, i); + pthread_mutex_unlock(&philo->same->mutex[config->nbr_philo + 2]); } void message(t_philo *philo, char *msg) @@ -43,6 +46,7 @@ void message(t_philo *philo, char *msg) int i; config = philo->same->config; + pthread_mutex_lock(&philo->same->mutex[config->nbr_philo + 2]); i = ft_lltos(send, (get_utime() - philo->same->time) / 1000); send[i++] = ' '; i += ft_lltos(send + i, philo->only->id + 1); @@ -51,6 +55,7 @@ void message(t_philo *philo, char *msg) send[i++] = *msg++; if (!finish(philo, philo->only->last_eat_time)) write(1, send, i); + pthread_mutex_unlock(&philo->same->mutex[config->nbr_philo + 2]); } int verif_finish(t_philo *philo, t_only *only) diff --git a/philo/utils_threads.o b/philo/utils_threads.o new file mode 100644 index 0000000..b7eccac Binary files /dev/null and b/philo/utils_threads.o differ