diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c index def9908d..5866883f 100644 --- a/src/pcm/pcm_direct.c +++ b/src/pcm/pcm_direct.c @@ -313,7 +313,12 @@ int snd_pcm_direct_server_create(snd_pcm_direct_t *dmix) close(dmix->server_fd); return ret; } else if (ret == 0) { - server_job(dmix); + ret = fork(); + if (ret == 0) + server_job(dmix); + exit(EXIT_SUCCESS); + } else { + waitpid(ret, NULL, 0); } dmix->server_pid = ret; dmix->server = 1;