Make semaphores lose conditionally
authorLukas Jiriste <ljiriste@student.42prague.com>
Thu, 30 May 2024 11:06:51 +0000 (13:06 +0200)
committerLukas Jiriste <ljiriste@student.42prague.com>
Thu, 30 May 2024 11:06:51 +0000 (13:06 +0200)
This is done to make helgrind stop emitting an error about closing
non-existent semaphore hence saving me some explaining during
evaluation.

philo_bonus/mem_management.c
philo_bonus/philo.c

index f7a503b8910c9ddce86dccdae86682e096345bdd..76fc5402aee35e4a2dfb6499160019f0b3fd0b6b 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <marvin@42.fr>                    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/03/28 09:39:55 by ljiriste          #+#    #+#             */
-/*   Updated: 2024/05/30 11:18:25 by ljiriste         ###   ########.fr       */
+/*   Updated: 2024/05/30 13:01:59 by ljiriste         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -53,12 +53,18 @@ int init(unsigned int count, pid_t **philo_pids, t_sems *semaphores)
 
 void   close_semaphores(t_sems *semaphores)
 {
-       sem_close(semaphores->forks);
-       sem_close(semaphores->fed);
-       sem_close(semaphores->death);
-       sem_close(semaphores->term);
-       sem_close(semaphores->end);
-       sem_close(semaphores->check_end);
+       if (semaphores->forks != SEM_FAILED)
+               sem_close(semaphores->forks);
+       if (semaphores->fed != SEM_FAILED)
+               sem_close(semaphores->fed);
+       if (semaphores->death != SEM_FAILED)
+               sem_close(semaphores->death);
+       if (semaphores->term != SEM_FAILED)
+               sem_close(semaphores->term);
+       if (semaphores->end != SEM_FAILED)
+               sem_close(semaphores->end);
+       if (semaphores->check_end != SEM_FAILED)
+               sem_close(semaphores->check_end);
        return ;
 }
 
index bb44b9c032b272ad4fe65dc33dd0b0bf97feb615..1e14c137743fa51ac547f6e4d3177ec138ec01f8 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <marvin@42.fr>                    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/05/09 08:45:21 by ljiriste          #+#    #+#             */
-/*   Updated: 2024/05/30 12:49:14 by ljiriste         ###   ########.fr       */
+/*   Updated: 2024/05/30 13:00:26 by ljiriste         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -35,7 +35,7 @@ static int    open_semaphores(t_philo *philo)
                        || philo->semaphores.term == SEM_FAILED
                        || philo->semaphores.end == SEM_FAILED)
                return (2);
-       philo->semaphores.check_end = NULL;
+       philo->semaphores.check_end = SEM_FAILED;
        return (0);
 }