clear.c
1 /* ************************************************************************** */ 2 /* */ 3 /* ::: :::::::: */ 4 /* clear.c :+: :+: :+: */ 5 /* +:+ +:+ +:+ */ 6 /* By: gychoi <gychoi@student.42seoul.kr> +#+ +:+ +#+ */ 7 /* +#+#+#+#+#+ +#+ */ 8 /* Created: 2023/04/18 19:25:15 by gychoi #+# #+# */ 9 /* Updated: 2023/04/18 20:55:23 by gychoi ### ########.fr */ 10 /* */ 11 /* ************************************************************************** */ 12 13 #include "philo.h" 14 15 int clear_mutex_array(pthread_mutex_t *mutex_array, int index) 16 { 17 int i; 18 19 i = 0; 20 while (i < index) 21 { 22 pthread_mutex_destroy(&(mutex_array)[i]); 23 i++; 24 } 25 return (FALSE); 26 } 27 28 int clear_all_mutex(t_share *share) 29 { 30 clear_mutex_array(share->fork_locks, share->args.philo_num); 31 pthread_mutex_destroy(&(share->share_lock)); 32 return (FALSE); 33 } 34 35 int clear_and_detach_all_thread(t_philo *philos, t_share *share) 36 { 37 int i; 38 39 i = 0; 40 while (i < share->args.philo_num) 41 { 42 pthread_detach(philos[i].philo_thread); 43 i++; 44 } 45 return (clear_all_mutex(share)); 46 }