diff options
author | Robin Gareus <robin@gareus.org> | 2016-12-12 22:47:16 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-12-12 22:47:16 +0100 |
commit | 8276a4658a723c54bbbf941375d2e27416e82043 (patch) | |
tree | f53117ace3a39553d29febff4635f2dde1a1e2be /libs/ardour/session.cc | |
parent | e37bfffca5692509ede7481b7cadda7606cc3e17 (diff) |
Fix possible crash when removing ports with jack1
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r-- | libs/ardour/session.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 55fd63e083..5b9d7369b5 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -7080,7 +7080,12 @@ Session::auto_connect_thread_run () } } - AudioEngine::instance()->clear_pending_port_deletions (); + { + // this may call ARDOUR::Port::drop ... jack_port_unregister () + // jack1 cannot cope with removing ports while processing + Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ()); + AudioEngine::instance()->clear_pending_port_deletions (); + } pthread_cond_wait (&_auto_connect_cond, &_auto_connect_mutex); } |