pcm direct plugins: drain() call might be blocked when threads are used

Add SETUP state checks and do modifications according latest ALSA driver
(passing wrong event identification).

ALSA bug#4914

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Jaroslav Kysela 2010-03-03 10:58:53 +01:00
parent 7fd0d9f423
commit b9dbee694a
5 changed files with 20 additions and 14 deletions

View file

@ -605,8 +605,8 @@ static int snd_pcm_dmix_drop(snd_pcm_t *pcm)
snd_pcm_direct_t *dmix = pcm->private_data;
if (dmix->state == SND_PCM_STATE_OPEN)
return -EBADFD;
snd_pcm_direct_timer_stop(dmix);
dmix->state = SND_PCM_STATE_SETUP;
snd_pcm_direct_timer_stop(dmix);
return 0;
}