From 162df0a132b3baa19086a16b1c34ea871e3cd418 Mon Sep 17 00:00:00 2001
From: JozanLeClerc <bousset.rudy@gmail.com>
Date: Fri, 13 Mar 2020 19:31:49 +0100
Subject: There is no way I pthread

---
 src/ft_sfx_footstep.c | 40 +++++++++++++++++++---------------------
 src/ft_sfx_trap.c     |  3 +--
 2 files changed, 20 insertions(+), 23 deletions(-)

(limited to 'src')

diff --git a/src/ft_sfx_footstep.c b/src/ft_sfx_footstep.c
index bccb847..d9f083d 100644
--- a/src/ft_sfx_footstep.c
+++ b/src/ft_sfx_footstep.c
@@ -16,29 +16,27 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <libft.h>
 void
 	ft_sfx_footstep(t_cub *cl)
 {
-	(void)cl;
-	/* static uint8_t	ref = 0; */
+	static uint8_t	ref = 0;
 
-	/* cl->sfx.footstep_pid = fork(); */
-	/* if (cl->sfx.footstep_pid == 0) */
-	/* { */
-	/* 	ref += 1; */
-	/* 	if (ref > 201) */
-	/* 		ref = 0; */
-	/* 	if (ref % 2) */
-	/* 		execve(*(cl->sfx.footstep_one + 0), */
-	/* 			   cl->sfx.footstep_one, cl->envp); */
-	/* 	else */
-	/* 		execve(*(cl->sfx.footstep_two + 0), */
-	/* 			   cl->sfx.footstep_two, cl->envp); */
-	/* } */
-	/* else */
-	/* 	wait(&cl->sfx.footstep_pid); */
+	if (waitpid(cl->sfx.footstep_pid, 0, WNOHANG) > 0)
+	{
+		cl->sfx.footstep_pid = fork();
+		if (cl->sfx.footstep_pid == 0)
+		{
+			ref += 1;
+			if (ref > 201)
+				ref = 0;
+			if (ref % 2)
+				execve(*(cl->sfx.footstep_one + 0),
+					   cl->sfx.footstep_one, cl->envp);
+			else
+				execve(*(cl->sfx.footstep_two + 0),
+					   cl->sfx.footstep_two, cl->envp);
+		}
+		else
+			wait(&cl->sfx.footstep_pid);
+	}
 }
diff --git a/src/ft_sfx_trap.c b/src/ft_sfx_trap.c
index b52b9c1..1499ecf 100644
--- a/src/ft_sfx_trap.c
+++ b/src/ft_sfx_trap.c
@@ -15,7 +15,6 @@
 #include <unistd.h>
 #include <stdint.h>
 
-#include <pthread.h>
 static void
 	ft_sfx_pain(t_cub *cl)
 {
@@ -41,7 +40,7 @@ void
 	ft_sfx_trap(t_cub *cl)
 {
 	cl->sfx.trap_pid = fork();
-	else if (cl->sfx.trap_pid == 0)
+	if (cl->sfx.trap_pid == 0)
 		execve(*(cl->sfx.trap + 0), cl->sfx.trap, cl->envp);
 	else
 	{
-- 
cgit v1.2.3