[alsa-devel] interrupting snd_pcm_writei or snd_pcm_drain?

Takashi Iwai tiwai at suse.de
Thu Nov 15 12:36:07 CET 2007

At Wed, 14 Nov 2007 12:34:07 -0400 (GMT+4),
Mike Gorse wrote:
> I've noticed that it is unsafe to call snd_pcm_writei or snd_pcm_drain in 
> a pthread with its cancelation type set to asynchronous. 
> snd_pcm_dmix_sync_area can lower a semaphore, and, if the thread is 
> canceled while the semaphore is down, then a subsequent call to the sound 
> device (calling snd_pcm_close, for instance) will also lower the semaphore 
> and cause deadlock.  Is this a known issue, and is there a way around it 
> other than to always use deferred cancelation when calling these 
> functions?

I've not looked deeply through this code flow yet, but it sounds
possible that the semaphore gets confused.  Did you test any codes
indicating that?



More information about the Alsa-devel mailing list