From b992ca41965edf663f99bae19a95d59f2fd1ed97 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Sun, 15 Mar 2020 02:15:01 +0100 Subject: okok --- src/ft_sfx_trap.c | 26 -------------------------- 1 file changed, 26 deletions(-) (limited to 'src/ft_sfx_trap.c') diff --git a/src/ft_sfx_trap.c b/src/ft_sfx_trap.c index 1499ecf..4b3dcf9 100644 --- a/src/ft_sfx_trap.c +++ b/src/ft_sfx_trap.c @@ -10,40 +10,14 @@ /* */ /* ************************************************************************** */ -#include #include #include #include -static void - ft_sfx_pain(t_cub *cl) -{ - static uint8_t ref = 0; - - ref += 1; - if (ref > 201) - ref = 0; - if (ref % 2) - { - cl->sfx.pain_pid = fork(); - if (cl->sfx.pain_pid == 0) - { - if (ref % 3) - execve(*(cl->sfx.pain_one + 0), cl->sfx.pain_one, cl->envp); - else - execve(*(cl->sfx.pain_two + 0), cl->sfx.pain_two, cl->envp); - } - } -} - void ft_sfx_trap(t_cub *cl) { cl->sfx.trap_pid = fork(); if (cl->sfx.trap_pid == 0) execve(*(cl->sfx.trap + 0), cl->sfx.trap, cl->envp); - else - { - ft_sfx_pain(cl); - } } -- cgit v1.2.3 From bcbe3db5345f86fcacb039039382f3130c933eea Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Sun, 15 Mar 2020 14:26:29 +0100 Subject: Sounds have been threaded --- src/ft_sfx_trap.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'src/ft_sfx_trap.c') diff --git a/src/ft_sfx_trap.c b/src/ft_sfx_trap.c index 4b3dcf9..d55dd57 100644 --- a/src/ft_sfx_trap.c +++ b/src/ft_sfx_trap.c @@ -11,13 +11,30 @@ /* ************************************************************************** */ #include -#include -#include +#include +#include + +void + *ft_sfx_trap_thread(void *vargp) +{ + t_sfx *sfx; + + if (FT_OS == 1) + pthread_setcancelstate(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); + else + pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); + sfx = (t_sfx *)vargp; + pthread_mutex_lock(&sfx->trap_mutex); + while (1) + { + pthread_mutex_lock(&sfx->trap_mutex); + system(sfx->trap); + } + return (NULL); +} void ft_sfx_trap(t_cub *cl) { - cl->sfx.trap_pid = fork(); - if (cl->sfx.trap_pid == 0) - execve(*(cl->sfx.trap + 0), cl->sfx.trap, cl->envp); + pthread_mutex_unlock(&cl->sfx.trap_mutex); } -- cgit v1.2.3