summaryrefslogtreecommitdiffstats
path: root/src/plugins/coreaudio
diff options
context:
space:
mode:
authorDyami Caliri <dyami@dragonframe.com>2014-07-22 11:19:14 -0700
committerDyami Caliri <dyami@dragonframe.com>2014-08-21 20:55:10 +0200
commitc93c1d1dc30884b2c13bffdbc701efb5401b58b7 (patch)
treeaa7544cc4a4ebc87c5d190368ef35d5e50f660f4 /src/plugins/coreaudio
parentff527de0133d597293459cc7d0f03f6203995cc6 (diff)
CoreAudioOutput use timeout when waiting for render thread
On Snow Leopard (at least), changing the default audio device while audio is playing can cause CoreAudioOutput to freeze in audioThreadStop(). It seems that the OS stops calling renderCallback when the device changes, so audioThreadStop() waits forever. Change-Id: If7244cc50f12295ff91a979ef50e3bee1273affd Reviewed-by: Andy Nichols <andy.nichols@digia.com>
Diffstat (limited to 'src/plugins/coreaudio')
-rw-r--r--src/plugins/coreaudio/coreaudiooutput.mm4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/plugins/coreaudio/coreaudiooutput.mm b/src/plugins/coreaudio/coreaudiooutput.mm
index e5e1c65e5..812d9dfe2 100644
--- a/src/plugins/coreaudio/coreaudiooutput.mm
+++ b/src/plugins/coreaudio/coreaudiooutput.mm
@@ -698,14 +698,14 @@ void CoreAudioOutput::audioThreadStop()
{
stopTimers();
if (m_audioThreadState.testAndSetAcquire(Running, Stopped))
- m_threadFinished.wait(&m_mutex);
+ m_threadFinished.wait(&m_mutex, 500);
}
void CoreAudioOutput::audioThreadDrain()
{
stopTimers();
if (m_audioThreadState.testAndSetAcquire(Running, Draining))
- m_threadFinished.wait(&m_mutex);
+ m_threadFinished.wait(&m_mutex, 500);
}
void CoreAudioOutput::audioDeviceStop()