[alsa-devel] pcm write from posix threads

Takashi Iwai tiwai at suse.de
Wed Aug 20 10:11:01 CEST 2008

At Tue, 19 Aug 2008 17:24:06 -0500,
Brian Rhodes wrote:
> When calling snd_pcm_write* from a thread how do you safely cancel the 
> thread?  I've tried masking the signals which are used in alsa lib, yet 
> I am getting a segfault on pthread_exit().  My thread is looping doing 
> the following.
> testcancel
> snd_pcm_wait
> snd_pcm_avail
> snd_pcm_writei
> I am checking return values to handle those functions being woken up by 
> pthread cancel and attempting to exit.  In testing the process it 
> performs fine until I start actually writing data.  Once I write some 
> data, a pthread_exit will segfault.  My cancellation routine is calling 
> snd_pcm_drop, then doing a cancel followed by join.

No, alsa-lib functions don't care threads in general.
Some codes have uses pthread_mutex, but not in the PCM core code, at

You need to handle and protect threads by yourself.


More information about the Alsa-devel mailing list