amend to 212d2ac5d (port add/remove signals)
authorRobin Gareus <robin@gareus.org>
Wed, 10 Jul 2013 11:49:51 +0000 (13:49 +0200)
committerRobin Gareus <robin@gareus.org>
Wed, 10 Jul 2013 13:27:12 +0000 (15:27 +0200)
fix deadlock when updating audio/midi connection matrix
during session-close or on exit.

(Note: this still can cause a crash if the route goes away
while the iterator in the connection-matrix still has an index
of it)

libs/ardour/bundle.cc

index cf393644fca18c30f81b239214e3fc8493d634e3..0ac62d70762d6a78fbccd8b692bfecee97728810 100644 (file)
@@ -206,6 +206,7 @@ Bundle::remove_channel (uint32_t ch)
        Glib::Threads::Mutex::Lock lm (_channel_mutex);
        _channel.erase (_channel.begin () + ch);
 
+       lm.release();
        emit_changed (ConfigurationChanged);
 }
 
@@ -217,6 +218,7 @@ Bundle::remove_channels ()
 
        _channel.clear ();
 
+       lm.release();
        emit_changed (ConfigurationChanged);
 }