diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-12-14 17:08:57 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-12-14 17:08:57 +0000 |
commit | 60872a8504cccc0d7e6c2485af8c0362577f5723 (patch) | |
tree | b729bcb39d30acb1f836a4a8de989bec7803e0ef /libs/ardour/delivery.cc | |
parent | fe06030f02963cb032d05a95384ddfafb9240f1e (diff) |
get Delivery to disconnect from any signals it is connected to relatively early in its destructor, so that it is not possible to call Delivery::cycle_start() and encounter a partially formed Delivery-derived object. may fix a crash that geoff beasley has seen with jack2
git-svn-id: svn://localhost/ardour2/branches/3.0@11004 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/delivery.cc')
-rw-r--r-- | libs/ardour/delivery.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/libs/ardour/delivery.cc b/libs/ardour/delivery.cc index f9ff3be83e..c7ce380a48 100644 --- a/libs/ardour/delivery.cc +++ b/libs/ardour/delivery.cc @@ -103,7 +103,16 @@ Delivery::Delivery (Session& s, boost::shared_ptr<Pannable> pannable, boost::sha Delivery::~Delivery() { - DEBUG_TRACE (DEBUG::Destruction, string_compose ("delivery %1 destructor\n", _name)); + DEBUG_TRACE (DEBUG::Destruction, string_compose ("delivery %1 destructor\n", _name)); + + /* this object should vanish from any signal callback lists + that it is on before we get any further. The full qualification + of the method name is not necessary, but is here to make it + clear that this call is about signals, not data flow connections. + */ + + ScopedConnectionList::drop_connections (); + delete _output_buffers; } |