diff options
Diffstat (limited to 'libs/backends/coreaudio/coreaudio_backend.cc')
-rw-r--r-- | libs/backends/coreaudio/coreaudio_backend.cc | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/libs/backends/coreaudio/coreaudio_backend.cc b/libs/backends/coreaudio/coreaudio_backend.cc index 0e978bff71..4c522dcdd9 100644 --- a/libs/backends/coreaudio/coreaudio_backend.cc +++ b/libs/backends/coreaudio/coreaudio_backend.cc @@ -1558,6 +1558,12 @@ CoreAudioBackend::process_callback (const uint32_t n_samples, const uint64_t hos return 1; } + if (_reinit_thread_callback || _main_thread != pthread_self()) { + _reinit_thread_callback = false; + _main_thread = pthread_self(); + AudioEngine::thread_init_callback (this); + } + if (pthread_mutex_trylock (&_process_callback_mutex)) { // block while devices are added/removed #ifndef NDEBUG @@ -1566,13 +1572,6 @@ CoreAudioBackend::process_callback (const uint32_t n_samples, const uint64_t hos engine.Xrun(); return 1; } - - if (_reinit_thread_callback || _main_thread != pthread_self()) { - _reinit_thread_callback = false; - _main_thread = pthread_self(); - AudioEngine::thread_init_callback (this); - } - /* port-connection change */ pre_process(); |