1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
JUCE/modules/juce_audio_processors
reuk 5c34248d00
PluginListComponent: Wait for current scan to complete before calling owner.scanFinished()
I observed a deadlock when scanning AU plugins in-process in the
AudioPluginHost, and then clicking the "cancel" button in the scan
progress alert window.

The cause of the deadlock seems to be that JUCE uses async messages to
create and destroy AU plugins on the main thread. When running a plugin
scanner on a background thread, it was possible to end up in a situation
where the background thread was waiting on the message thread to process
a create/destroy message; and, at the same time, the main thread was
blocked waiting for all scan jobs to complete. This seemed to happen
because scanFinished() was called directly from the Scanner's
timerCallback as soon as the progress window was cancelled, even if
there was still a scan in progress at that point.

To avoid the deadlock, we now wait until the current scan has completely
finished before allowing the timerCallback to call scanFinished(). If no
scan is in progress, then the main thread can safely destroy the scanner
ThreadPool without needing to wait at that point.
2025-06-06 23:12:16 +01:00
..
format Update licensing information 2024-04-16 11:39:35 +01:00
format_types AU Host: Avoid caching parameter value strings when getNumSteps() returns a large value 2025-06-03 16:12:00 +01:00
processors GenericAudioProcessorEditor: Avoid creating choice parameter components for discrete parameters with large numbers of steps 2025-06-06 23:12:16 +01:00
scanning PluginListComponent: Wait for current scan to complete before calling owner.scanFinished() 2025-06-06 23:12:16 +01:00
utilities VST3 Client: Clarify documentation for compatibility extensions 2025-05-22 11:15:46 +01:00
juce_audio_processors.cpp AudioProcessor: Use new MessageManager::callSync 2025-02-06 18:22:33 +00:00
juce_audio_processors.h Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_audio_processors.mm Update licensing information 2024-04-16 11:39:35 +01:00
juce_audio_processors_ara.cpp Update licensing information 2024-04-16 11:39:35 +01:00
juce_audio_processors_lv2_libs.cpp Update licensing information 2024-04-16 11:39:35 +01:00