Make the waiting on buffer exchange interruptible; sometimes the driver manages

to lock up (after some changing formats, rates, play/stops). Needs more
investigation, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24145 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2008-02-26 16:10:50 +00:00
parent 7ef3822c00
commit 73107b3121
@@ -298,7 +298,8 @@ buffer_exchange(hda_audio_group* audioGroup, multi_buffer_info* data)
}
/* do playback */
rc = acquire_sem(audioGroup->playback_stream->buffer_ready_sem);
rc = acquire_sem_etc(audioGroup->playback_stream->buffer_ready_sem,
1, B_CAN_INTERRUPT, 0);
if (rc != B_OK) {
dprintf("%s: Error waiting for playback buffer to finish (%s)!\n", __func__,
strerror(rc));