summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-12-12 22:47:16 +0100
committerRobin Gareus <robin@gareus.org>2016-12-12 22:47:16 +0100
commit8276a4658a723c54bbbf941375d2e27416e82043 (patch)
treef53117ace3a39553d29febff4635f2dde1a1e2be /libs/ardour/session.cc
parente37bfffca5692509ede7481b7cadda7606cc3e17 (diff)
Fix possible crash when removing ports with jack1
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r--libs/ardour/session.cc7
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);
}