diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2017-07-05 15:07:37 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2017-09-18 11:40:53 -0400 |
commit | fb9dd1a411d518472521047b1f3451aabdc334a0 (patch) | |
tree | b6373aa68ebbf52e195aacf3d780b03640693422 | |
parent | f76c05851f4ab973cc258d595c26f738243f3eb9 (diff) |
DiskWriter needs to drop source refs in its destructor.
SerializedRCUManager can't do this by itself
-rw-r--r-- | libs/ardour/disk_writer.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/ardour/disk_writer.cc b/libs/ardour/disk_writer.cc index 1e248dcdc0..ac9bcade02 100644 --- a/libs/ardour/disk_writer.cc +++ b/libs/ardour/disk_writer.cc @@ -67,6 +67,12 @@ DiskWriter::DiskWriter (Session& s, string const & str, DiskIOProcessor::Flag f) DiskWriter::~DiskWriter () { DEBUG_TRACE (DEBUG::Destruction, string_compose ("DiskWriter %1 @ %2 deleted\n", _name, this)); + + boost::shared_ptr<ChannelList> c = channels.reader(); + + for (ChannelList::iterator chan = c->begin(); chan != c->end(); ++chan) { + (*chan)->write_source.reset (); + } } framecnt_t |