Fix adeadlock (or rather NDEADLCK)
authorRobin Gareus <robin@gareus.org>
Fri, 21 Apr 2017 01:37:26 +0000 (03:37 +0200)
committerRobin Gareus <robin@gareus.org>
Fri, 21 Apr 2017 02:08:05 +0000 (04:08 +0200)
ControlProtocolManager::set_state() already takes the protocols_lock.
However effectively this is a NO-OP. During ::set_state no CPI should
be instantiated and  ControlProtocolManager::teardown() returns early.

libs/ardour/control_protocol_manager.cc

index 6a7bdfb3cb97ba7a3f68741d9cdf065d6f39b60c..014c2209d68801cb5a205230e8c926bb9ca041ff 100644 (file)
@@ -469,7 +469,7 @@ ControlProtocolManager::set_state (const XMLNode& node, int /*version*/)
                                        }
                                } else {
                                        if (_session) {
-                                               teardown (*cpi, true);
+                                               teardown (*cpi, false);
                                        } else {
                                                cpi->requested = false;
                                        }