From 661d258687e4f49d11a3a20b7a59cdaacaea0ffb Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 21 Apr 2017 03:37:26 +0200 Subject: [PATCH] Fix adeadlock (or rather NDEADLCK) 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/ardour/control_protocol_manager.cc b/libs/ardour/control_protocol_manager.cc index 6a7bdfb3cb..014c2209d6 100644 --- a/libs/ardour/control_protocol_manager.cc +++ b/libs/ardour/control_protocol_manager.cc @@ -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; }