diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2017-06-21 12:54:39 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2017-09-18 11:40:53 -0400 |
commit | 302d15d2c0c5d34a11c49d888c28cd4dafc2b082 (patch) | |
tree | a8bf9ceed16b9457dd273a2756cd2b12d31b5ea9 /libs/ardour/disk_io.cc | |
parent | 6827dfe832834873fb3f656d48f3294ba5c127fd (diff) |
drop route shared_ptr when Route::GoingAway is emitted
Diffstat (limited to 'libs/ardour/disk_io.cc')
-rw-r--r-- | libs/ardour/disk_io.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/ardour/disk_io.cc b/libs/ardour/disk_io.cc index 40f97cba0a..26be1e0a0f 100644 --- a/libs/ardour/disk_io.cc +++ b/libs/ardour/disk_io.cc @@ -388,9 +388,19 @@ DiskIOProcessor::ChannelInfo::~ChannelInfo () } void +DiskIOProcessor::drop_route () +{ + _route.reset (); +} + +void DiskIOProcessor::set_route (boost::shared_ptr<Route> r) { _route = r; + + if (_route) { + _route->DropReferences.connect_same_thread (*this, boost::bind (&DiskIOProcessor::drop_route, this)); + } } /** Get the start, end, and length of a location "atomically". |