fix/workaround OSX "No Memory Pool"

fixes issue on MacBookPro11,1 OSX 10.10

* Coreaudio: internal speaker + internal Mic
* start recording
* plug-in headphone
* stop recording 
-> crash
  process_callback -> [..] stop_transport -> no RT memory pool
  for realtime event.
This commit is contained in:
Robin Gareus 2015-12-09 11:12:56 +01:00
parent 548989fc75
commit 8bfa7d95c1

View File

@ -215,6 +215,26 @@ AudioEngine::process_callback (pframes_t nframes)
return 0;
}
/* The coreaudio-backend calls thread_init_callback() if
* the hardware changes or pthread_self() changes.
*
* However there are cases when neither holds true, yet
* the thread-pool changes: e.g. connect a headphone to
* a shared mic/headphone jack.
* It's probably related to, or caused by clocksource changes.
*
* For reasons yet unknown Glib::Threads::Private() can
* use a different thread-private in the same pthread
* (coreaudio render callback).
*
* Coreaudio must set something which influences
* pthread_key_t uniqness or reset the key using
* pthread_getspecific().
*/
if (! SessionEvent::has_per_thread_pool ()) {
thread_init_callback (NULL);
}
bool return_after_remove_check = false;
if (_measuring_latency == MeasureAudio && _mtdm) {