Set a flag if we've sent the player process SIGSTOP so that we know not to
wait for it to complete an action which it never will. git-svn-id: https://svn.musicpd.org/mpd/trunk@6488 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
12
src/player.c
12
src/player.c
@@ -110,11 +110,13 @@ void player_sigChldHandler(int pid, int status)
|
||||
|
||||
int playerInit(void)
|
||||
{
|
||||
PlayerControl *pc = &(getPlayerData()->playerControl);
|
||||
int pid;
|
||||
|
||||
pid = player_pid;
|
||||
if (pid > 0) {
|
||||
kill(pid, SIGCONT);
|
||||
pc->wait = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -124,8 +126,6 @@ int playerInit(void)
|
||||
{
|
||||
clock_t start = clock();
|
||||
|
||||
PlayerControl *pc = &(getPlayerData()->playerControl);
|
||||
|
||||
unblockSignals();
|
||||
|
||||
setSigHandlersForDecoder();
|
||||
@@ -184,16 +184,22 @@ int playerInit(void)
|
||||
|
||||
int playerWait(int fd)
|
||||
{
|
||||
PlayerControl *pc = &(getPlayerData()->playerControl);
|
||||
int pid;
|
||||
|
||||
if (pc->wait)
|
||||
return 0;
|
||||
|
||||
if (playerStop(fd) < 0)
|
||||
return -1;
|
||||
|
||||
playerCloseAudio();
|
||||
|
||||
pid = player_pid;
|
||||
if (pid > 0)
|
||||
if (pid > 0) {
|
||||
pc->wait = 1;
|
||||
kill(pid, SIGSTOP);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user