diff options
author | Robin Gareus <robin@gareus.org> | 2014-09-03 05:17:16 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-09-03 05:20:28 +0200 |
commit | 07a651d2ec0590ad8315de0fd43492b7238af908 (patch) | |
tree | b5af4b3ab44fda8ee59f012c494d0624701aac7b /libs/ardour/internal_send.cc | |
parent | f684cc24ecdae0dea1467df7ae5eea3d16868bd5 (diff) |
release shared route pointer kept by InternalSend when dropping refs.
fixes "SessionHandleRef exists across session deletion"
when using AuxSends
Diffstat (limited to 'libs/ardour/internal_send.cc')
-rw-r--r-- | libs/ardour/internal_send.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/ardour/internal_send.cc b/libs/ardour/internal_send.cc index e5c7232f48..33b299dfee 100644 --- a/libs/ardour/internal_send.cc +++ b/libs/ardour/internal_send.cc @@ -58,6 +58,7 @@ InternalSend::InternalSend (Session& s, init_gain (); + _send_from->DropReferences.connect_same_thread (source_connection, boost::bind (&InternalSend::send_from_going_away, this)); CycleStart.connect_same_thread (*this, boost::bind (&InternalSend::cycle_start, this, _1)); } @@ -118,6 +119,12 @@ InternalSend::target_io_changed () } void +InternalSend::send_from_going_away () +{ + _send_from.reset(); +} + +void InternalSend::send_to_going_away () { target_connections.drop_connections (); |