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  }