From 23348526efe0723e58e6950b2bff006705971188 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Sat, 24 Nov 2001 11:27:24 +0000 Subject: [PATCH] Fixed double initialization in prepare --- src/pcm/pcm_share.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c index 3ea7dde9..2fa4170a 100644 --- a/src/pcm/pcm_share.c +++ b/src/pcm/pcm_share.c @@ -813,6 +813,17 @@ static int snd_pcm_share_prepare(snd_pcm_t *pcm) snd_pcm_share_slave_t *slave = share->slave; int err = 0; Pthread_mutex_lock(&slave->mutex); + switch (share->state) { + case SND_PCM_STATE_OPEN: + err = -EBADFD; + goto _end; + case SND_PCM_STATE_RUNNING: + err = -EBUSY; + goto _end; + case SND_PCM_STATE_PREPARED: + err = 0; + goto _end; + } if (slave->prepared_count == 0) { err = snd_pcm_prepare(slave->pcm); if (err < 0) -- 2.47.1