aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/ft_sfx_footstep.c40
-rw-r--r--src/ft_sfx_trap.c3
2 files changed, 20 insertions, 23 deletions
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
{