aboutsummaryrefslogtreecommitdiffstats
path: root/src/ft_sfx_death.c
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-03-15 14:26:29 +0100
committerJozanLeClerc <bousset.rudy@gmail.com>2020-03-15 14:26:29 +0100
commitbcbe3db5345f86fcacb039039382f3130c933eea (patch)
tree36cb74b5e6d4c1b6ade5816ee821c58acbd4fd17 /src/ft_sfx_death.c
parentCharacter is now FAT (diff)
download42-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.c26
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);
}