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:
@@ -298,7 +298,8 @@ buffer_exchange(hda_audio_group* audioGroup, multi_buffer_info* data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* do playback */
|
/* 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) {
|
if (rc != B_OK) {
|
||||||
dprintf("%s: Error waiting for playback buffer to finish (%s)!\n", __func__,
|
dprintf("%s: Error waiting for playback buffer to finish (%s)!\n", __func__,
|
||||||
strerror(rc));
|
strerror(rc));
|
||||||
|
|||||||
Reference in New Issue
Block a user