aboutsummaryrefslogtreecommitdiffstats
path: root/src/ft_music.c
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-03-16 19:41:26 +0100
committerJozanLeClerc <bousset.rudy@gmail.com>2020-03-16 19:41:26 +0100
commita8c9c04ec24a71f076891bdc1c26860db7c5c9c3 (patch)
treea5dc6905f6987c4d5fcd27276f7fc338f2af8f0b /src/ft_music.c
parentCleaner memdels (diff)
parentMerge branch 'master' into back-to-pthread (diff)
download42-cub3d-a8c9c04ec24a71f076891bdc1c26860db7c5c9c3.tar.gz
42-cub3d-a8c9c04ec24a71f076891bdc1c26860db7c5c9c3.tar.bz2
42-cub3d-a8c9c04ec24a71f076891bdc1c26860db7c5c9c3.tar.xz
42-cub3d-a8c9c04ec24a71f076891bdc1c26860db7c5c9c3.tar.zst
42-cub3d-a8c9c04ec24a71f076891bdc1c26860db7c5c9c3.zip
Merge branch 'back-to-pthread'
Diffstat (limited to '')
-rw-r--r--src/ft_music.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/ft_music.c b/src/ft_music.c
index 234f86e..1a3da63 100644
--- a/src/ft_music.c
+++ b/src/ft_music.c
@@ -11,21 +11,28 @@
/* ************************************************************************** */
#include <cub3d.h>
-#include <unistd.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <pthread.h>
-void
- ft_music_fork(char **mcmd_words, char *const envp[])
+static void
+ *ft_music_thread(void *vargp)
{
- execve(*(mcmd_words + 0), mcmd_words, envp);
+ t_cub *cl;
+
+ if (FT_OS == 1)
+ pthread_setcancelstate(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
+ else
+ pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
+ cl = (t_cub *)vargp;
+ while (1)
+ system(cl->mlist.music_cmd);
+ return(NULL);
}
void
ft_enable_music(t_cub *cl)
{
cl->isoldmus = 1;
- cl->mpid = fork();
- if (cl->mpid == 0)
- {
- ft_music_fork(cl->mlist.mcmd_words, cl->envp);
- }
+ pthread_create(&cl->mtid, NULL, ft_music_thread, cl);
}