diff options
author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-03-15 14:26:29 +0100 |
---|---|---|
committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-03-15 14:26:29 +0100 |
commit | bcbe3db5345f86fcacb039039382f3130c933eea (patch) | |
tree | 36cb74b5e6d4c1b6ade5816ee821c58acbd4fd17 /src/ft_sfx_death.c | |
parent | Character is now FAT (diff) | |
download | 42-cub3d-bcbe3db5345f86fcacb039039382f3130c933eea.tar.gz 42-cub3d-bcbe3db5345f86fcacb039039382f3130c933eea.tar.bz2 42-cub3d-bcbe3db5345f86fcacb039039382f3130c933eea.tar.xz 42-cub3d-bcbe3db5345f86fcacb039039382f3130c933eea.tar.zst 42-cub3d-bcbe3db5345f86fcacb039039382f3130c933eea.zip |
Sounds have been threaded
Diffstat (limited to '')
-rw-r--r-- | src/ft_sfx_death.c | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/ft_sfx_death.c b/src/ft_sfx_death.c index 2566358..1680f2d 100644 --- a/src/ft_sfx_death.c +++ b/src/ft_sfx_death.c @@ -11,14 +11,30 @@ /* ************************************************************************** */ #include <cub3d.h> -#include <unistd.h> +#include <stdlib.h> +#include <pthread.h> void - ft_sfx_death(t_cub *cl) + *ft_sfx_death_thread(void *vargp) { - cl->sfx.death_pid = fork(); - if (cl->sfx.death_pid == 0) + 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->death_mutex); + while (1) { - execve(*(cl->sfx.death + 0), cl->sfx.death, cl->envp); + pthread_mutex_lock(&sfx->death_mutex); + system(sfx->death); } + return (NULL); +} + +void + ft_sfx_death(t_cub *cl) +{ + pthread_mutex_unlock(&cl->sfx.death_mutex); } |