[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?


thanks,

Takashi


More information about the Alsa-devel mailing list