Hi Takashi
On 9/5/07, Takashi Iwai tiwai@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