diff options
author | Robin Gareus <robin@gareus.org> | 2017-08-03 18:52:39 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-08-03 19:25:14 +0200 |
commit | 8b380a423a4aecfeccb5a26fa418937810b81cef (patch) | |
tree | 65eae43ed680b93e0480967fea870f503385f0c9 /libs/ardour/session.cc | |
parent | 1b5354632fc1f0f2b5f96a07b20d35ac5c64628b (diff) |
improve 1a288ddd, destroy IO after disconnecting from signals.
This does not completely fix the race-condition. The GUI
(e.g. connection-manager) may still hold a shared-ptr reference.
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r-- | libs/ardour/session.cc | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 62514f6d36..91f67cf3da 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -644,19 +644,19 @@ Session::destroy () _slave = 0; } - /* remove I/O objects before unsetting the engine session */ - _click_io.reset (); - _ltc_input.reset (); - _ltc_output.reset (); - /* disconnect from any and all signals that we are connected to */ Port::PortSignalDrop (); /* EMIT SIGNAL */ drop_connections (); /* shutdown control surface protocols while we still have ports - and the engine to move data to any devices. - */ + * and the engine to move data to any devices. + */ + + /* remove I/O objects before unsetting the engine session */ + _click_io.reset (); + _ltc_input.reset (); + _ltc_output.reset (); ControlProtocolManager::instance().drop_protocols (); |