[alsa-devel] snd_pcm_drain and lockups

Arve Knudsen arve.knudsen at gmail.com
Wed Sep 5 19:19:10 CEST 2007


Hi Takashi

On 9/5/07, Takashi Iwai <tiwai at suse.de> wrote:
>
> At Tue, 4 Sep 2007 23:03:27 +0200,
> Arve Knudsen wrote:
> >
> > Hello
> >
> > Users of the PortAudio library on top of ALSA-lib have reported that it
> may
> > hang in a call to snd_pcm_drain. I have also been able to confirm that
> this
> > can happen in conjunction with the dmix device at least. Can the ALSA
> > developers please tell me how, if at all, snd_pcm_drain may be safely
> used?
> > Is this function simply best avoided (snd_pcm_drop being the
> alternative)?
>
> Of course, it's supposed to be safe to use :)  But, it's hard to tell
> you more unless I get the details in your case...
>
> In which situation is it called?  Are they multi-threaded?


The lock-up happens in a background thread within PortAudio. What has been
known to cause lock-ups at least is that PA restarts the device after the
detection of an xrun. This procedure entails first draining the stream
(snd_pcm_drain), the dmix and front devices have been known to lock up here
(I've experienced it with dmix at least). I've googled a bit on the problem,
and I didn't find a whole lot of evidence of this problem, but I did find
this: http://www.ohloh.net/projects/5344/contributors/32264/commits/10293341
.

Arve


More information about the Alsa-devel mailing list