Require explicit types when removing PlayHandles in the Mixer
This fixes a few deadlocks where a PresetPreviewPlayHandle would be removed by the creation of a new PresetPreviewPlayHandle.
This commit is contained in:
@@ -101,7 +101,9 @@ GigInstrument::GigInstrument( InstrumentTrack * _instrument_track ) :
|
||||
|
||||
GigInstrument::~GigInstrument()
|
||||
{
|
||||
Engine::mixer()->removePlayHandles( instrumentTrack() );
|
||||
Engine::mixer()->removePlayHandlesOfTypes( instrumentTrack(),
|
||||
PlayHandle::TypeNotePlayHandle
|
||||
| PlayHandle::TypeInstrumentPlayHandle );
|
||||
freeInstance();
|
||||
}
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@ CarlaInstrument::CarlaInstrument(InstrumentTrack* const instrumentTrack, const D
|
||||
|
||||
CarlaInstrument::~CarlaInstrument()
|
||||
{
|
||||
Engine::mixer()->removePlayHandles( instrumentTrack() );
|
||||
Engine::mixer()->removePlayHandlesOfTypes(instrumentTrack(), PlayHandle::TypeNotePlayHandle | PlayHandle::TypeInstrumentPlayHandle);
|
||||
|
||||
if (fHost.resourceDir != NULL)
|
||||
{
|
||||
|
||||
@@ -217,7 +217,9 @@ opl2instrument::opl2instrument( InstrumentTrack * _instrument_track ) :
|
||||
|
||||
opl2instrument::~opl2instrument() {
|
||||
delete theEmulator;
|
||||
Engine::mixer()->removePlayHandles( instrumentTrack() );
|
||||
Engine::mixer()->removePlayHandlesOfTypes( instrumentTrack(),
|
||||
PlayHandle::TypeNotePlayHandle
|
||||
| PlayHandle::TypeInstrumentPlayHandle );
|
||||
delete [] renderbuffer;
|
||||
}
|
||||
|
||||
|
||||
@@ -157,7 +157,9 @@ sf2Instrument::sf2Instrument( InstrumentTrack * _instrument_track ) :
|
||||
|
||||
sf2Instrument::~sf2Instrument()
|
||||
{
|
||||
Engine::mixer()->removePlayHandles( instrumentTrack() );
|
||||
Engine::mixer()->removePlayHandlesOfTypes( instrumentTrack(),
|
||||
PlayHandle::TypeNotePlayHandle
|
||||
| PlayHandle::TypeInstrumentPlayHandle );
|
||||
freeFont();
|
||||
delete_fluid_synth( m_synth );
|
||||
delete_fluid_settings( m_settings );
|
||||
|
||||
@@ -102,7 +102,9 @@ vestigeInstrument::~vestigeInstrument()
|
||||
knobFModel = NULL;
|
||||
}
|
||||
|
||||
Engine::mixer()->removePlayHandles( instrumentTrack() );
|
||||
Engine::mixer()->removePlayHandlesOfTypes( instrumentTrack(),
|
||||
PlayHandle::TypeNotePlayHandle
|
||||
| PlayHandle::TypeInstrumentPlayHandle );
|
||||
closePlugin();
|
||||
}
|
||||
|
||||
|
||||
@@ -144,7 +144,9 @@ ZynAddSubFxInstrument::ZynAddSubFxInstrument(
|
||||
|
||||
ZynAddSubFxInstrument::~ZynAddSubFxInstrument()
|
||||
{
|
||||
Engine::mixer()->removePlayHandles( instrumentTrack() );
|
||||
Engine::mixer()->removePlayHandlesOfTypes( instrumentTrack(),
|
||||
PlayHandle::TypeNotePlayHandle
|
||||
| PlayHandle::TypeInstrumentPlayHandle );
|
||||
|
||||
m_pluginMutex.lock();
|
||||
delete m_plugin;
|
||||
|
||||
Reference in New Issue
Block a user