From 01faa6f4e30e2a75319ca2b402f19fca0a6ae9b6 Mon Sep 17 00:00:00 2001 From: "J. Alexander Treuman" Date: Mon, 4 Jun 2007 23:14:38 +0000 Subject: 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 --- src/player.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/player.c') diff --git a/src/player.c b/src/player.c index beff9b389..096503b19 100644 --- a/src/player.c +++ b/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; } -- cgit v1.2.3