fade.c: Fix client_cmd()
[paraslash.git] / fade.c
diff --git a/fade.c b/fade.c
index f269f0292fbf31be9f48673314beee6c14cb8c05..c86b938532022b4aea628cfb0299e4a6510b4d2e 100644 (file)
--- a/fade.c
+++ b/fade.c
@@ -149,7 +149,7 @@ out:
        close(mixer_fd);
 }
 
-static int client_cmd(const char *cmd,...)
+static void client_cmd(const char *cmd)
 {
        int ret, fds[3] = {0, 0, 0};
        pid_t pid;
@@ -158,7 +158,11 @@ static int client_cmd(const char *cmd,...)
        PARA_INFO_LOG("%s\n", cmdline);
        ret = para_exec_cmdline_pid(&pid, cmdline, fds);
        free(cmdline);
-       return ret;
+       if (ret < 0)
+               exit(EXIT_FAILURE);
+       do
+               ret = wait(NULL);
+       while (ret != -1 && errno != ECHILD);
 }
 
 static void change_afs_mode_and_play(char *afs_mode)