From fe1a11908e0cbd03c5e193a59a94a5f49b8ba7a1 Mon Sep 17 00:00:00 2001 From: reuk Date: Thu, 20 Jun 2024 12:27:54 +0100 Subject: [PATCH] Direct2D: Fix data race when creating Direct2DPixelData instances on a background thread --- modules/juce_graphics/native/juce_DirectX_windows.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/juce_graphics/native/juce_DirectX_windows.h b/modules/juce_graphics/native/juce_DirectX_windows.h index 09ce70b490..6e422459ef 100644 --- a/modules/juce_graphics/native/juce_DirectX_windows.h +++ b/modules/juce_graphics/native/juce_DirectX_windows.h @@ -241,7 +241,10 @@ private: } ComSmartPtr d2dFactory; - ListenerList listeners; + + // It's possible that we'll need to add/remove listeners from background threads, especially in + // the case that Images are created on a background thread. + ThreadSafeListenerList listeners; ComSmartPtr factory = makeDxgiFactory(); ReferenceCountedArray adapterArray; };