![](https://secure.gravatar.com/avatar/8d72f9c9a7286943b5ecda709f5dd46a.jpg?s=120&d=mm&r=g)
14 Nov
2007
14 Nov
'07
5:34 p.m.
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?
Thanks, -Mike G-