1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
JUCE/modules
reuk 21b0cd4663
Network: Fix potential deadlock in macOS WebInputStream
Regarding didComplete():

When a WebInputStream is destroyed, the thread of execution will wait in
SharedSession::removeTask() until the task is no longer present in the
list of all active tasks. If multiple threads are all waiting in
removeTask(), then all of those threads should wake when the set of
active tasks changes. Waking only a single thread may result in
deadlocks, as that thread's task may not have completed successfully.
Then, the thread that woke up will be forced to sleep again and may not
get another chance to wake.

Regarding didBecomeInvalid():

Normally, didBecomeInvalid() will only be called after the
SharedSession's destructor. If the destructor is running, we may assume
that no other thread can access the SharedSession, so using notify_one()
in didBecomeInvalid() should be sufficient to wake up the destructor's
thread. However, there's a chance that the NSURLSession may be
invalidated unexpectedly (i.e. before the SharedSession's destructor
runs), in which case there may still be threads waiting in removeTask().
In this scenario we need to notify_all() so that all waiting threads are
able to wake and make progress.
2025-06-30 19:46:19 +01:00
..
juce_analytics Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_animation Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_audio_basics Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_audio_devices iOS: Fix deprecation warning 2025-06-10 20:16:02 +01:00
juce_audio_formats Fix compilation when JUCE_USE_LAME_AUDIO_FORMAT=1 2025-06-17 10:13:52 +02:00
juce_audio_plugin_client VST3: Prevent some warnings 2025-06-12 15:52:01 +01:00
juce_audio_processors AudioProcessorGraph: Fix bug where channel delays could incorrectly be applied multiple times 2025-06-19 18:12:33 +01:00
juce_audio_utils AudioVisualiserComponent: Fix potential data races 2025-06-03 16:12:00 +01:00
juce_box2d Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_core Network: Fix potential deadlock in macOS WebInputStream 2025-06-30 19:46:19 +01:00
juce_cryptography Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_data_structures Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_dsp Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_events Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_graphics Graphics: Modify imported libjpeg sources for unity build compatibility 2025-06-19 13:18:43 +01:00
juce_gui_basics Windows: Update window style flags when toggling kiosk mode 2025-06-30 16:33:43 +01:00
juce_gui_extra WebBrowserComponent: Avoid spinning indefinitely when reaching end of file 2025-06-23 20:33:42 +01:00
juce_javascript Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_midi_ci Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_opengl OpenGL: Document blend parameter for copyTexture method 2025-06-10 16:13:33 +01:00
juce_osc Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_product_unlocking Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
juce_video Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
CMakeLists.txt Javascript: Move javascript implementation into a separate module 2024-11-07 09:53:10 +00:00