1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-02-01 03:10:06 +00:00
JUCE/modules/juce_audio_processors
reuk 7ea93ce5d2
LV2 Host: Avoid potential deadlock in AudioProcessorGraph
Previously, preparing an AudioProcessorGraph containing hosted LV2
plugins would recreate the plugins and then set their state. For plugins
without threadsafe restore, setting the state would take the
callbackLock to avoid races with processBlock. This meant that

- During prepare, the graph would take the processorLock, then the
  processor would take its own callbackLock.
- During playback, the graph would take the processor's callbackLock,
  and then would take the node's processorLock.

This is probably benign (prepare shouldn't be called concurrently with
processBlock at all), but to be on the safe side we now avoid taking the
callbackLock when setting new plugin state during prepareToPlay.
2022-04-28 11:05:40 +01:00
..
format LV2: Add initial hosting support 2022-04-22 14:18:51 +01:00
format_types LV2 Host: Avoid potential deadlock in AudioProcessorGraph 2022-04-28 11:05:40 +01:00
processors LV2: Add initial hosting support 2022-04-22 14:18:51 +01:00
scanning Update copyright banners 2022-04-04 12:36:32 +01:00
utilities LV2: Add initial hosting support 2022-04-22 14:18:51 +01:00
juce_audio_processors.cpp LV2: Add initial hosting support 2022-04-22 14:18:51 +01:00
juce_audio_processors.h LV2: Add initial hosting support 2022-04-22 14:18:51 +01:00
juce_audio_processors.mm Update copyright banners 2022-04-04 12:36:32 +01:00
juce_audio_processors_lv2_libs.cpp LV2: Add initial hosting support 2022-04-22 14:18:51 +01:00