diff --git a/mixer/src/Mixer_Strip.C b/mixer/src/Mixer_Strip.C index e777729..cb02364 100644 --- a/mixer/src/Mixer_Strip.C +++ b/mixer/src/Mixer_Strip.C @@ -94,6 +94,7 @@ Mixer_Strip::~Mixer_Strip ( ) { DMESSAGE( "Destroying mixer strip" ); + _chain->engine()->lock(); /* make sure this gets destroyed before the chain */ fader_tab->clear(); diff --git a/mixer/src/Module.C b/mixer/src/Module.C index 41e38eb..ceb5773 100644 --- a/mixer/src/Module.C +++ b/mixer/src/Module.C @@ -71,12 +71,14 @@ Module::Module ( ) : Fl_Group( 0, 0, 50, 50, "Unnamed" ) Module::~Module ( ) { + /* we assume that the engine for this chain is already locked */ + if ( _editor ) { delete _editor; _editor = NULL; } - + for ( unsigned int i = 0; i < audio_input.size(); ++i ) audio_input[i].disconnect(); for ( unsigned int i = 0; i < audio_output.size(); ++i )